MVC,MVP和MVVM的简介与区别

1     MVC

全名:model + view + controller

       (模型) + (视图) + (控制器)

简介:

       MVC是一种使用MVC设计创建的web应用程序的模式:

1.    model:表示应用层核心!(比如数据库记录列表)

2.    view 表示显示数据(web界面)

3.    controller:处理输入.

它强制性的使应用程序的输入,处理,和输出分开,它们各自处理自己的任务!

最经典的MVC: JSP + servlet+ javabean

模式理论图:

                           MVC,MVP和MVVM的简介与区别

                            MVC,MVP和MVVM的简介与区别

2     MVP

全称: Model + View + Presenter

简介:

MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方: Presenter负责逻辑的处理,Model提供数据,View负责显示。

MVC有着一个重大的区别: View并不直接使用Model,它们之间的通信是通过Presente来进行的,所有的交互都发生在Presenter内部.

       由Presenter充当桥梁,做到ModelView之间的通信隔离!

优点:

1.    Presenter完全把ModelView 进行了分离; Presenter与具体的view是没有直接关系的,而是通过定义好的接口进行交互,从而使得在改变view的时候可以保证Presenter的不变.(即重用)

2.    修改视图完全不影响model

3.    高效的使用model,所有的交互都有发生在Presenter内部,

4.    将Presenter用于多视图,而不用改变Presenter的逻辑,这个特性很有用,因为视图的变化总是比model频繁!

5.    将逻辑放在Presenter上可以脱离用你胡接口测试这些逻辑(单元测试).

模式理论图:

                             MVC,MVP和MVVM的简介与区别

3     MVVM

全名: Model + View + ViewModel

简介:

       MVVM将MVP中的Presenter 改名为 ViewModel,基本上与MVP模式完全一致!

特点:

       MVP唯一的区别:它采用双向绑定,view的改变会自动反应到viewmodel,反之亦然(viewmodel读取到model的改变自己发生改变的同时也会带着view的改变!)

模式理论图:

                         MVC,MVP和MVVM的简介与区别

参考质料:

http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html