1.MVC是指Model(模型)、View(视图)、Control(控制)。
- View 传送指令到 Controller
- Controller 完成业务逻辑后,要求 Model 改变状态
- Model 将新的数据发送到 View,用户得到反馈
所有通信都是单向的。
缺点:
(1)View可以直接从Model中取到数据,因此View层中可能包含了一些业务逻辑,修改view层是比较困难的,因为这些业务逻辑是不可以重用的
(2)不建议在 View 中依赖 Model,而是要求尽可能把所有业务逻辑都放在 Controller 中处理,而 View 只和 Controller 交互。
2.MVP是指Model(模型)、View(视图)、Presenter(呈现层)
- 各部分之间的通信,都是双向的。
- View 与 Model 不发生联系,都通过 Presenter 传递。
- View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。
缺点:由于对视图的渲染放在了Presenter中,所以视图和Presenter的交互会过于频繁。
3.MVVM是指Model(模型)、View(视图)、ViewModel(视图模型)
与MVP的唯一区别是它采用数据双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。