在 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/