MVC :
Model View Controller
Model 负责数据交互 android 中的 View 和 Controller 都是指 Activity,Activity 负责了
ui 显示和 业务逻辑代码。
MVC 缺点:当业务规模比较大时,Controller 代码比较臃肿。一个 Activity 代码成千上万行的时候
非常不便于阅读、维护。
适用场景:规模比较小的项目
MVP :
Model View Presenter
Model 负责数据交互 android 中的 View 指 Activity,Activity 负责了
ui 显示,Presenter 是指跟 android api 无关的业务逻辑代码。
Presenter 在中间,通过 View 接口和 View 进行交互
MVP 优点:View 层只负责 ui 显示,减少了耦合度。
MVP 缺点:View 和 Presenter 互相引用并互相回调,代码不美观。当 View 发生变化时,Presenter
可能做相应的变化(改变更新 ui 的方法,改变回调的方法等),view 和 Presenter 之间还是存
在一定的耦合度,导致代码更改量比较大。
MVVM:
View ViewModel Model
ViewModel 不再持有 View 的引用,通过绑定关系自动更新 ui ,ui的变化也自动反馈到
ViewModel
MVVM 优点:
低耦合度
MVVM模式中,数据是独立于UI的,ViewModel只负责处理和提供数据,UI想怎么处理数据都由UI自己决定,ViewModel 不涉及任何和UI相关的事也不持有UI控件的引用,即使控件改变(TextView
换成 EditText)ViewModel 几乎不需要更改任何代码,专注自己的数据处理就可以了。







