谷歌 IO 17 上发布了新的 Android 架构组件。
那么我们应该将 MVP 与架构组件和 MVVM 一起使用吗?
在 Github 上的 google 示例中,他们使用了 MVVM 模型。 谷歌示例
谷歌 IO 17 上发布了新的 Android 架构组件。
那么我们应该将 MVP 与架构组件和 MVVM 一起使用吗?
在 Github 上的 google 示例中,他们使用了 MVVM 模型。 谷歌示例
关于架构模式的选择及其实现,总是取决于团队成员、应用程序类型等诸多因素。
在谷歌的博文中,他们已经说过架构组件主要是
意见不是处方。
但是,开发了三个主要组件 ( Room, ViewModel, ViewData
) 以广泛使用,但不专注于任何特定模式。
例如,
最后,为你的问题。
那么我们应该将 MVP 与架构组件一起使用吗?
答案是“它是 Android 框架的一个很好的部分,所以为什么不呢”。
更新:
如果您想了解 MVP 模式项目如何与新的架构组件一起使用,请查看我在 Github 上的存储库。在其中,我通过使用 Room 进行本地持久性和 LifeCycle 创建生命周期感知的 Presenter 来增强以前的 MVP 模型。
我目前正在构建一个模板项目,该项目使用 MVP 模式以及 Google 架构组件(Room、LiveData),并Realm
与 LiveData 的混合版本进行比较:
https://github.com/duyp/mvp-template
我认为某些 Google 架构组件与 MVP 模式兼容,不仅适用于 MVVM:D
您可以查看以下 2 个分支:
realm_livedata
: 具有 Realm 和 LiveData 的 MVP
room_livedata
:带有 Room 持久性库和 LiveData 的 MVP
它比Google sample
项目复杂得多(我使用过Dagger 2
,RxAndroid,Retrofit,Gson 和干净的架构)希望您为您的工作找到更好的解决方案。如果有任何问题或建议,您可以在 上留下评论或问题my github project
。
我还使用带有 Realm、Dagger 2、实时数据的新 Google 架构组件使用 MVVM 创建了一个项目:https ://github.com/duyp/mvvm-template
快乐编码!