带有 MVP 的 Android 架构组件

标签 android android-architecture-components

在 google IO 17 上发布了新的 Android 架构组件。

那么我们应该将 MVP 与架构组件和 MVVM 一起使用吗?

在 Github 上的 google 示例中,他们使用了 MVVM 模型。 Google Sample

最佳答案

关于架构模式的选择及其实现,总是取决于团队成员、应用类型等诸多因素。
在 Google 的博文中,他们已经说过架构组件主要是

Opinions not Prescriptions.

但是,开发了三个主要组件(Room、ViewModel、ViewData),用途广泛,但并不专注于任何特定模式。
例如,

  • 如果您使用 SQLite 在应用中持久化本地数据,您可以 你的房间不管你用的是哪种模式,它真的是一个 很棒的图书馆,有很多好处,比如减少样板 代码,在编译时验证 SQLite 语法等。
  • 除此之外,LifeCycle、LiveData、ViewModel 都有自己的强项 点。特别是,它们很好地解决了生命周期处理问题。
  • LiveData 为您提供了另一种观察者模式的工具,它可以响应式地处理数据流。 (就像 RxJava 为我们提供的一个很棒的功能一样)。
  • ...

最后,对于你的问题。

So should we use MVP with architecture components?

答案是“它是 Android 框架的一个很好的部分,所以为什么不呢”。

更新:
如果您想了解 MVP 模式项目如何与新的架构组件一起工作,请查看我的 repository on Github .在其中,我通过使用 Room 进行本地持久性和 LifeCycle 创建生命周期感知的 Presenter 来增强以前的 MVP 模型。

关于带有 MVP 的 Android 架构组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44231334/

相关文章:

android - 如何创建发出单个事件并仅通知最后订阅的观察者的 LiveData?

首次更新后 Android LiveData Observer 未激活

android - 如何在Eclipse中保存音频文件?

android - 在另一个源文件中调用 JNI C 函数

android - 在 Viewpager 中使用具有相同 ViewModel 的相同 Fragment 的多个实例时出现问题

android - 在 Android 的导航架构组件中将复杂对象作为参数传递

Android WorkManager - 如何延迟任务?

android - 如何将媒体商店中没有的音乐文件设置为铃声

android - 使用 Retrofit 2.0 POST 方法获取请求正文内容

android - 如何从 png 文件加载 ImageView?