在带有选项卡的 Winforms 的模型视图演示器中应该使用多少个演示器?

Posted

技术标签:

【中文标题】在带有选项卡的 Winforms 的模型视图演示器中应该使用多少个演示器?【英文标题】:How many presenters should be used in Model View Presenter with Winforms with tabs? 【发布时间】:2011-06-09 16:37:07 【问题描述】:

我有一个带有与业务实体相关的选项卡的表单 - 例如一个Person有传记数据、地址数据等。每个选项卡处理一个Person数据类别的输入/编辑,每个选项卡可以独立保存。应该为所有选项卡使用一位演示者,还是每个选项卡使用一位演示者?也可能有一个主选项卡,可以导航到其他选项卡(基于所选数据的类别)。

【问题讨论】:

【参考方案1】:

在我看来,这里发生的合乎逻辑的事情是您正在处理一个人的数据。 UI(即视图)是否使用选项卡、电子表格或统一的条目控件列表对演示者来说是偶然的。

视图应该负责在选项卡之间切换、从演示者发送数据以及将演示者提供的数据放置在正确的位置。

presenter 获取视图发送给它的数据,并进行任何需要的验证并存储它。它还负责在收到新数据时更新视图。

这样,如果选项卡界面不起作用,则可以通过让新 UI 实现视图界面来轻松切换。

如果只更新一个选项卡很重要,那么可以使用类别的概念来设计演示者。作为演示者逻辑的一部分,它告诉视图只更新一类数据。

在统一的输入表单上,这将表现为仅表单更新的一部分。在您在原始帖子中提到的选项卡式表单上,这将导致一个选项卡更新。

在类的数量和它们的功能之间取得平衡很重要。对少数人来说,他们正在做很多事情,这些事情在未来的维护中很难分开。太多了,他们的关系会变得混乱,使未来的维护变得复杂。

【讨论】:

【参考方案2】:

我为每个视图创建一个演示者。如果每个选项卡都是一个单独的视图,那么每个选项卡都有自己的演示者。

【讨论】:

以上是关于在带有选项卡的 Winforms 的模型视图演示器中应该使用多少个演示器?的主要内容,如果未能解决你的问题,请参考以下文章

使用带有视图而不是活动的 Android 选项卡的示例?

如何在作为选项卡的 2 个片段之间共享视图模型

WinForms 中的模型视图演示者

android模型视图演示者/控制器示例[关闭]

在 WPF 中开始时绑定所有选项卡项视图模型

Ionic 4 路由到带有选项卡的视图会触发整页重新加载