本文参考自 认清Android框架 MVC,MVP和MVVM
以及MVP模式简单易懂的介绍
便于自己学习所做的一些整理。
1.mvc 模式
MVC模式主要的问题:
- view层为xml文件,控制能力较弱,对于一些动态的界面来说要依靠于activity来编写,导致activity过于臃肿,不便于维护。
- view层与model层是相互可知的,存在耦合。
2.mvp 模式
MVP是对于MVC模式的一种改进。主要在于解耦View层和Model层
主要的核心思想
MVP把Activity中的UI逻辑抽象成View接口,把业务逻辑抽象成Presenter接口,Model类还是原来的Model其中
presenter
层主要充当的是桥梁的作用,view
层发送数据到presenter
层中,presenter
层去操作model
层,并且将数据返回给view
层。这种交互主要是通过定义接口,activity和fragment可以去实现这个接口,然后再对应的presenter中通过接口调用方法。
比较好的方法是,使用
fragment
作为view层,而activity
则是用于创建view层(fragment)和presenter层(presenter)的一个控制器
。
3.mvvm模式
- MVVM模式与MVP模式差不多,主要是将
presenter
转成viewmodel
层,以及view层和viewmodel层之间的关系是相互绑定的。这意味着最大的好处是,当你在更新viewmodel
层的同时,view层也会去相应的更新UI。