【问题标题】:Android MVP for complex activity适用于复杂活动的 Android MVP
【发布时间】:2017-01-21 00:56:39
【问题描述】:

我想在我的 android 项目中实现 MVP 模式。 所以,对于 Login-activity 我没有任何问题。 但是在 Activity-Main 中我有点困惑,现在我不确定我应该如何实现它的 Presenter !!!

在 Activity-Main 中有 3 个部分,分别是 Navigation-Drawer 、 Toolbar 和 Fragment 。

我现在如何制作演示者?我怀疑创建一个实现其他 3 个实现的演示者或

直接创建3个可以访问Activity-Main的presenter?

谢谢

【问题讨论】:

    标签: android mvp


    【解决方案1】:

    您可以参考google的android-architecture创建。据我说,您应该为每个视图创建三个不同的演示者,然后绑定它们。您应该检查示例的this part,它具有非常基本的设计

    【讨论】:

      【解决方案2】:

      我们为一个复杂的活动(30 多个屏幕)所做的是将每个屏幕划分为 View 和 Presenter 组件,其中 View 与 Android View 进行战斗,Presenter 制定逻辑(从控制器、网络或本地提取和准备数据贮存)。但是,是的,Google samples 包含几乎所有您需要开始的信息。无论哪种方式,您都应该花更多时间设计和思考结构,而不是实际实施它。祝你好运:)

      【讨论】:

      • 感谢您的重播。我看到了 Google 的示例并学习了 MVP 模式。但我的问题是:我应该创建多少个演示者? 3个还是一个?什么是转化?
      • 好的更多信息 - 也许你应该在实施之前研究这个问题:stackoverflow.com/questions/19444431/…
      • 您可能正在寻找 MVVM 模式。如果您觉得它足够吸引人,这实际上取决于您在应用程序中所做的事情 - 如果不真正了解业务逻辑(您不应该在 SO 上发布),我无法给您任何建议。当你确定你已经将你的用例组合在一起时,应该很容易从中提取一个好的数据模型并致力于分离业务逻辑。从我现在可以阅读的内容来看,您似乎需要一个导航抽屉的演示者+一个主容器的演示者。但同样,这取决于您的用例和要求 :)
      【解决方案3】:

      根据我对 MVP 及其实现的理解,“P”是执行所有逻辑/动作处理的逻辑部分。对于这种情况,我亲自创建了两个演示者:Navigation Drawer/Home Presenter 和 Fragment Presenter。

      Navigation/Home P : 只负责与 Navigation 相关和 Main-Activity 相关的操作。

      Fragment P : 1-1 关系,即每个片段都有自己的presenter。

      对于工具栏演示者:我没有看到太多应该为工具栏创建单独演示者的情况,因为所有通过片段委托的操作和每个片段在工具栏中将有不同的项目和不同的处理。所以整理它们在一个只会增加复杂性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多