MVC和MVVM

一、MVC

        mvc模式,软件代码可以分为3个部分: View(视图),用户界面;Controller(控制器),业务逻辑;Model(模型),数据保存

        各部分之间的通信方式如下:

MVC和MVVM

        1、View传递指令到Controller

        2、Controller完成业务逻辑后,要求model改变状态

        3、Model将新数据发送给View,用户得到反馈

        所有通信都是单向的

二、MVC的互动模式

        接受指令时,MVC有两种方式。一种是通过View接受指令,传递给Controller

 MVC和MVVM

        另一种是通过controller接受指令

 MVC和MVVM

三、MVC实际应用 Backbone

        实际项目往往比较灵活,以Backbone为例

 MVC和MVVM

        1、用户可以向View发送指令(DOM事件),再由View直接要求Model改变状态;

        2、用户也可以直接向Controller发送指令 (改变 URL 触发 hashChange 事件),再由Controller传递给View

        3、Controller非常单薄,只起到路由的作用,而View很厚实,业务逻辑都在View中。所以Backbone取消了Controller,只保留一个router

四、MVP

        MVP模式将Controller改为了Presenter,同时改变了通信方向

MVC和MVVM

1、各部分之间的通信都是双向的

2、View和Model不发生联系,都通过Presenter传递

3、View非常单薄,不部署任何业务逻辑,是被动视图(Passive View),即没有任何主动性,而 Presenter非常厚,所有业务逻辑都部署在这里

五、MVVM

        MVVM将Presenter改为了 ViewModel,

 MVC和MVVM

         它和MVC和MVP的区别是,它采用了双向数据绑定,View的变动会反映在 ViewModel中,反之亦然。如 angular

上一篇:DG_Check检测


下一篇:dp练习--