一、MVC
mvc模式,软件代码可以分为3个部分: View(视图),用户界面;Controller(控制器),业务逻辑;Model(模型),数据保存
各部分之间的通信方式如下:
1、View传递指令到Controller
2、Controller完成业务逻辑后,要求model改变状态
3、Model将新数据发送给View,用户得到反馈
所有通信都是单向的
二、MVC的互动模式
接受指令时,MVC有两种方式。一种是通过View接受指令,传递给Controller
另一种是通过controller接受指令
三、MVC实际应用 Backbone
实际项目往往比较灵活,以Backbone为例
1、用户可以向View发送指令(DOM事件),再由View直接要求Model改变状态;
2、用户也可以直接向Controller发送指令 (改变 URL 触发 hashChange 事件),再由Controller传递给View
3、Controller非常单薄,只起到路由的作用,而View很厚实,业务逻辑都在View中。所以Backbone取消了Controller,只保留一个router
四、MVP
MVP模式将Controller改为了Presenter,同时改变了通信方向
1、各部分之间的通信都是双向的
2、View和Model不发生联系,都通过Presenter传递
3、View非常单薄,不部署任何业务逻辑,是被动视图(Passive View),即没有任何主动性,而 Presenter非常厚,所有业务逻辑都部署在这里
五、MVVM
MVVM将Presenter改为了 ViewModel,
它和MVC和MVP的区别是,它采用了双向数据绑定,View的变动会反映在 ViewModel中,反之亦然。如 angular