在MVP中我的演示者应该为其视图提供视图吗?

时间:2011-12-15 16:35:11

标签: design-patterns language-agnostic mvp

我正在学习如何使用MVP,我想确保我“做得对”。

我有一个关联的演示者的主视图。该主视图由几个子组件组成,其中至少一个子组件可以互换。所以我将这些子组件转换为他们自己的视图/演示者对。

我目前的项目设置方式是主视图/演示者启动项目。当主要演示者被实例化时,它会调用工厂函数来创建其他视图/演示者对。然后,演示者将对每个其他视图的引用传递到主视图,然后将其添加到主视图中。

这种方式对我来说似乎更有意义,但我想确保自己走在正确的轨道上。

1 个答案:

答案 0 :(得分:1)

通常情况下,Presenter是一个独立的类,而不是View,因此它们是模块化的,Presenter可以单独进行单元测试(尽管我很少觉得需要在实践中)。

要构建一个窗口,我使用的WindowPresenter包含WindowView

  • 使用所有Views
  • 构建并执行窗口布局
  • 将所有ViewsPresentersModels相关联(如果有的话)

通常,我只是将ModelView传递给Presenter的构造函数,尽管我听过其他人使用依赖注入框架。

总之,听起来你做得对,除非PresenterView通常是单独的类。有很多方法可以将MVP三元组连接在一起,通常我认为这是从顶级Presenter类完成的,但做任何最有意义的事情。