MVC,MVP和MVVM的简介与区别
1 MVC
全名:model + view + controller
(模型) + (视图) + (控制器)
简介:
MVC是一种使用MVC设计创建的web应用程序的模式:
1. model:表示应用层核心!(比如数据库记录列表)
2. view 表示显示数据(web界面)
3. controller:处理输入.
它强制性的使应用程序的输入,处理,和输出分开,它们各自处理自己的任务!
最经典的MVC: JSP + servlet+ javabean
模式理论图:
2 MVP
全称: Model + View + Presenter
简介:
MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方: Presenter负责逻辑的处理,Model提供数据,View负责显示。
与MVC有着一个重大的区别: View并不直接使用Model,它们之间的通信是通过Presente来进行的,所有的交互都发生在Presenter内部.
由Presenter充当桥梁,做到Model与View之间的通信隔离!
优点:
1. Presenter完全把Model与View 进行了分离; Presenter与具体的view是没有直接关系的,而是通过定义好的接口进行交互,从而使得在改变view的时候可以保证Presenter的不变.(即重用)
2. 修改视图完全不影响model
3. 高效的使用model,所有的交互都有发生在Presenter内部,
4. 将Presenter用于多视图,而不用改变Presenter的逻辑,这个特性很有用,因为视图的变化总是比model频繁!
5. 将逻辑放在Presenter上可以脱离用你胡接口测试这些逻辑(单元测试).
模式理论图:
3 MVVM
全名: Model + View + ViewModel
简介:
MVVM将MVP中的Presenter 改名为 ViewModel,基本上与MVP模式完全一致!
特点:
与MVP唯一的区别:它采用双向绑定,view的改变会自动反应到viewmodel上,反之亦然(viewmodel读取到model的改变自己发生改变的同时也会带着view的改变!)
模式理论图:
参考质料:
http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html