0

首先让我说这是我第一次尝试尝试 MVP。我将采用被动视图方法,因为我想将视图与模型完全分离。

我通过阅读以下文章了解了 MVP

德里克·格里尔
http://aspiringcraftsman.com/2007/08/25/interactive-application-architecture/

托德·斯奈德
http://blogs.infragistics.com/blogs/todd_snyder/archive/2007/10/17/mvc-or-mvp-pattern-whats-the-difference.aspx

我的应用程序将有 4 个视图,它们是自定义控件,每个视图都实现不同的界面来与 Presenter 交互。现在这对于 3 个视图来说不是问题,因为控件是静态的并且永远不会改变。

我的问题出现在第 4 个视图中,我需要更改基于从视图 1 触发的事件显示的控件/视图。

例如,假设 View 1 是一个可以来自员工或客户的人员列表。现在,根据所选人员的不同,您可以根据所选人员的类型修改不同的参数。问题是 View 4 需要根据所选内容动态更改编辑控件。请记住,不仅属性会有所不同,而且它们的编辑方式也会有所不同。此外,每个编辑控件都会为属性更改触发不同的事件。

那么我的 Presenter 是如何知道如何管理与模型的交互的,当取决于选择的是员工还是客户时,会有一个不同的编辑器实现不同的 View 界面?

我希望这很清楚。任何帮助是极大的赞赏。我进行了全面搜索,所有示例都显示了 View 和 Presenter 之间的具体关系,而我的示例需要非常灵活。

我的目标是保持第 4 个视图上的编辑控件非常灵活,例如,我可以为外星人或狗添加编辑控件/视图,或者我可以添加到 View1 中的任何其他内容以供选择。

谢谢

4

2 回答 2

0

I personally don't like having a 'Master Presenter' per se. I do build composite presenters: e.g. View can contain one of several views, so I build a Presenter for the master view, which sends commands (messages, events, whatever) to a specific child presenter (I don't expose any View outside it's owning Presenter).

Don't over-complicate things ...use a different View for each responsibility. Views are cheap.

于 2012-05-11T20:43:19.033 回答
0

您可以创建一个顶级演示者来侦听选择事件并通过根据所选内容实例化不同的 MVP 三元组来更改编辑控件。通常在 MVP 中,您的演示者管理所有的构造/依赖项。

于 2012-05-11T20:30:46.783 回答