2

我为开发创建了一个 MVP(被动视图)框架,并决定采用应用程序控制器模式来管理视图之间的导航。这是针对 WinForms、ASP.NET 和 WPF 接口的。

虽然我不是 100% 相信这些视图技术真的可以互换,但这是我目前的目标,所以我的 MVP 框架非常轻量级。

我正在努力适应的是“业务对话”的概念,它需要(a)在视图的生命周期内维护状态信息,或者更有可能是(b)在多个视图的生命周期内维护一个用例(业务对话)。我希望状态管理成为框架的一部分,因为我不希望开发人员担心它。他们需要做的就是“开始”对话,“注册”对象,然后框架完成其余的工作,直到“结束”对话。

有人对如何将其融入 MVP 有任何想法(模式)吗?我在想它可能是应用程序控制器职责的一部分(委托给对话管理器对象),因为它知道当前状态以便将用户发送到下一个视图......但后来我认为这可能取决于演示者开始和结束对话,然后由演示者管理对话和为该对话注册的对象。不幸的是,这意味着演示者不能用于不同的对话......所以这个想法似乎不正确。

如您所见,我认为没有一个简单的答案(而且我已经寻找了一段时间)。那么其他人有什么想法吗?

4

1 回答 1

1

如果仅涉及用户界面,则支持业务对话所需的类应驻留在演示者中。否则它应该在 Model 和 Controller 从 View 到 Presenter 到 Model。关于商务对话的信息以另一种方式流动。我怀疑它可以只存在于 Presenter 中。

由于所有视图都可以访问 Presenter,因此您可以构建支持对话的对象,以便可以在多个视图中维护它们。

请记住,视图是查看软件中存在哪些数据的窗口。他们几乎没有做其他显示数据,并将用户交互传递回执行逻辑的演示者。

于 2009-11-30T13:09:06.193 回答