【问题标题】:In MVP should my presenter provide views to its view?在 MVP 中,我的演示者是否应该为其视图提供视图?
【发布时间】:2011-12-15 16:35:11
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: design-patterns language-agnostic mvp


    【解决方案1】:

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

    为了构建一个窗口,我使用了一个WindowPresenter,其中包含一个WindowView

    • 使用所有Views 构建和执行窗口布局
    • 将所有Views 与它们的Presenters 和Models 连接起来(如果有的话)

    通常,我只是将Model 和View 传递给Presenter 的构造函数,虽然我听说其他人使用依赖注入框架。

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

    【讨论】:

      猜你喜欢
      • 2016-11-15
      • 2014-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-03
      • 1970-01-01
      • 2020-07-04
      • 2011-08-16
      相关资源
      最近更新 更多