1.MVC模式

       全名:Model View Controller,数据、界面显示分离、业务逻辑方法组织代码;

MVC 模式、MVP模式、MVVM模式思考_前端开发

       分析:当一个数据从View发起请求后,请求到Controller并返回给Model,最终经过View的渲染。

       缺点:  因为数据的功能的多样性,导致数据访问的性能较差,增加内部结构实现的复杂性,不适合于小中型系统;

       优点:可维护性高,部署快、利于软件工程话化管理,适合大型系统;

       M-model->模型->数据(JS变量)

       V-html

       C-controller控制器->事件交互->如何控制数据视图与用户交互后改变数据(通过DOM对象绑定事件,将变量进行修改)

2. MVP模式

      全名:Model-View-Presenter,MVP 是从经典的模式MVC演变而来,

                它们的基本思想有相通的地方Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。

        

MVC 模式、MVP模式、MVVM模式思考_数据_02

         Presenter是一个中介,完全隔离了View和Model, Activity 相当于 View, View可以完全不关心Model。

         View层只需面向Presenter层,不需要知道Model层;

        Model层只需面向Presenter层,不需要知道View层;

        View层和Model层逻辑交互在Presenter。

总结:

      1.View层, 即Activity 接收用户请求, 

      2.View不执行具体任务,而是交个P层完成

      3.P层收到V的请求后,可以自己做,也可以让Model层做

      4.Model执行任务

      5.M层把执行结果告诉P层

      6.P层告诉View层执行结果

3.MVVM框架      

MVC 模式、MVP模式、MVVM模式思考_前端开发_03

      全名:MVVM是Model-View-ViewModel的简写

      优点:双向绑定,就是我们直接更改View的话,也会直接更改ViewModel中的数据,不用再想Mvc中那样还要解决Model与View的响应设置;

      view:视图层,在我们的前端开发中,通常就是DOM树,主要就是给用户展示各种信息

      Model:数据层,从网络上请求的数据;

      VueModel:视图模型层,就是vue.js

4.总结

     MVC模式中,view 与 model 是亲戚关系,MVP模式中,view与model是陌生人,而MVVM模式view与model一家人;