MVC、MVP、MVVM模式

这里写自定义目录标题

MVC、MVP、MVVM模式

从MVC、MVP到MVVM模式的演变过程

MVC模式

通信方式如下:
MVC、MVP、MVVM模式

  • 视图(View):用户界面。传送指令到Controller
  • 控制器(Controller):业务逻辑,完成业务逻辑后,要求Model改变状 态
  • 模型(Model):数据保存,将新的数据发送到View,用户得到反馈

此时各个模块之间均有关联。个人认为,耦合度比较差。代码结构相对较为混乱。

MVP模式

通信方式如下:
MVC、MVP、MVVM模式

  • 各部分之间的通信是双向的
  • View和Model不发生联系,通过Presenter间接通信
  • View非常薄,不部署任何业务逻辑,称为‘被动视图(Passive View)’,即没有任何主动性,而Presenter非常厚,所有逻辑都部署在那里

MVP和MVC模式主要区别是:切断了View和Model之间的直接联系。二者之间传递信息只能通过Presenter来完成。此时,View的功能很薄,只是视图。而Presenter的任务很多,同样不利于代码结构划分。

MVVM模式

通信方式如下:
MVC、MVP、MVVM模式MVVM模式将MVP模式的Presenter替换成了ViewModel。其和MVP模式基本差不多。只是View分担了原本Presenter的任务。具有主动性,也就是双向数据绑定(data-binding)。View的变动,自动反应在ViewModel上,反之亦然。