c# - MVP:一种复杂表单(winforms)的多个 View /演示者?

标签 c# winforms mvp

我正在向旧应用程序中的复杂表单添加一些功能。它已经拥有一个巨大的表单,其中包含大量控件和选项卡以及 cs 文件背后的巨大代码。我试图避免创建一个巨大的 View /演示者。为表单的每个功能添加 View (和演示者)是一个好习惯吗?还有更好的解决办法吗?由于用户的要求,我无法将表单分成多个表单。

表单定义如下所示,

public partial class frmMyForm 
    : IView1, IView2, IView3, IView4, IView5, 
      IView6, IView7, IView8, IView9, IView10
{
    ....

每个IViewN都有不同的功能 - 例如,一种用于可视化数据变化比较,一种用于在网格中显示数据,一种用于汇总统计......


为什么这篇文章被否决了?评论说出你的理由。 如果您不知道 MVP 是什么,请不要否决该问题。

最佳答案

没有任何内容表明表单、 View 和演示者之间存在一对一的关系。事实上,将表单的各个部分分解为多个“ View ”(我最常在用户控件中看到这种情况;但不一定非得如此)并且每个 View 都有一个演示者,这是完全合理的事情。最常见的是,表单就是 View ;但同样,这不是强制性的。

正如你所说,这意味着避免一些可怕的全见\全能的 Presenter,这应该会导致代码更具凝聚力并减少单元测试的麻烦。

关于c# - MVP:一种复杂表单(winforms)的多个 View /演示者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11943015/

相关文章:

c# - 如何在不使用 OracleObjectMappingAttribute 的情况下使用 ODP.NET 从 Oracle UDT 进行映射?

c# - 应用程序域刷新/重启

c# - 撤销证书验证中的 X509RevocationMode.Online 问题

asp.net - 从开发 ASP.NET 转向 Winforms 应用程序的问题

c# - 表格申请的字体选择

java - MVP的具体代码示例

c# - DateTime 相等和声明导致 ContextSwitchDeadlock

android - MVP Android - 有多少演示者?

java - 使用 MVP 扩展 gwt 的 "Contacts"(示例项目)AppController

c# - 将变量从用户表单传递到类