本文参考自 认清Android框架 MVC,MVP和MVVM
以及MVP模式简单易懂的介绍
便于自己学习所做的一些整理。
1.mvc 模式

MVC模式图.png
MVC模式主要的问题:
- view层为xml文件,控制能力较弱,对于一些动态的界面来说要依靠于activity来编写,导致activity过于臃肿,不便于维护。
- view层与model层是相互可知的,存在耦合。
2.mvp 模式

MVP模式图.png
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模式图.png
- MVVM模式与MVP模式差不多,主要是将
presenter转成viewmodel层,以及view层和viewmodel层之间的关系是相互绑定的。这意味着最大的好处是,当你在更新viewmodel层的同时,view层也会去相应的更新UI。