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