浅谈MVC、MVP、MVVM模型

1.MVC是指Model(模型)、View(视图)、Control(控制)。
浅谈MVC、MVP、MVVM模型

  1. View 传送指令到 Controller
  2. Controller 完成业务逻辑后,要求 Model 改变状态
  3. Model 将新的数据发送到 View,用户得到反馈

所有通信都是单向的。

缺点:
(1)View可以直接从Model中取到数据,因此View层中可能包含了一些业务逻辑,修改view层是比较困难的,因为这些业务逻辑是不可以重用的
(2)不建议在 View 中依赖 Model,而是要求尽可能把所有业务逻辑都放在 Controller 中处理,而 View 只和 Controller 交互。

2.MVP是指Model(模型)、View(视图)、Presenter(呈现层)
浅谈MVC、MVP、MVVM模型

  1. 各部分之间的通信,都是双向的。
  2. View 与 Model 不发生联系,都通过 Presenter 传递。
  3. View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

缺点:由于对视图的渲染放在了Presenter中,所以视图和Presenter的交互会过于频繁。

3.MVVM是指Model(模型)、View(视图)、ViewModel(视图模型)
浅谈MVC、MVP、MVVM模型
与MVP的唯一区别是它采用数据双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。