【问题标题】:MVP and BaseActivity - Best practicesMVP 和 BaseActivity - 最佳实践
【发布时间】:2016-11-21 16:21:27
【问题描述】:

我正在使用 MVP 模式构建我的第一个 Android 应用程序。 除非我应该处理 BaseActivity 的使用,否则一切似乎都很清楚。

BaseActivity 的目的是拥有例如 navigationDrawer、选项菜单以及其他活动可能共有的一些其他方法。

我的问题是:

  • 如何处理 MVP 结构中的 BaseActivity?
  • 您也要创建合同吗?
  • 您是否会将常用方法放在 utils 类中而不是 BaseActivity 中并在 Presenter 中调用它?不确定是否总是可能的

期待您的建议,

这是我目前的结构:

【问题讨论】:

标签: android mvp


【解决方案1】:

嗨,使用 MVP 模式你可以处理很多事情,

  1. 你不需要工具栏的任何设置。

  2. 您可以直接从基本活动中设置标题和其他内容。

  3. 直接从基础活动中使用 Calligraphy 设置字体。

  4. 在基础活动中声明黄油刀

  5. 设置布局

  6. 在 api 调用期间处理任何异常。

  7. 使用抽象方法定义如何管理生命周期。

还有更多我们可以在基础活动中处理的东西。

MVP 用于更好地优化代码。

您将在 Presenter 中完成所有业务逻辑。

我已经创建了一个项目库。

查看更多details

谢谢

【讨论】:

  • 谢谢,你的链接太棒了。谢谢!
【解决方案2】:

您应该将想要在所有活动之间共享的所有代码放在那里。您可以在那里以通用方式提供演示者。如果您想让 Presenter 了解活动生命周期,可以调用 Presenter 的生命周期方法。通常我会将滑动菜单实现为具有自己的演示者的单独视图

【讨论】:

    【解决方案3】:

    在 MVP 中的 android Activity/Fragment - 这是你的视图 在 onActivityCreated(...) 你创建你的演示者; 在 View 中声明屏幕之间的导航。

    实际上你不需要为你的 Presenter 创建接口: http://blog.karumi.com/interfaces-for-presenters-in-mvp-are-a-waste-of-time/

    最佳实践:https://github.com/googlesamples/android-architecture

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2013-11-14
      相关资源
      最近更新 更多