MVC,MVP和MVVM

MVC、MVP、MVVM这些模式是为了解决开发过程当中的实际问题而提出来的,目前做为主流的几种架构模式而被普遍使用。html

1、MVC(Model-View-Controller)程序员

MVC是比较直观的架构模式,用户操做->View(负责接收用户的输入操做)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)。web

MVC使用很是普遍,好比JavaEE中的SSH框架(Struts/Spring/Hibernate),Struts(View, STL)-Spring(Controller, Ioc、Spring MVC)-Hibernate(Model, ORM)以及ASP.NET中的ASP.NET MVC框架,xxx.cshtml-xxxcontroller-xxxmodel。(实际上后端开发过程当中是v-c-m-c-v,v和m并无关系,下图仅表明经典的mvc模型)数据库

2、MVP(Model-View-Presenter)后端

MVP是把MVC中的Controller换成了Presenter(呈现),目的就是为了彻底切断View跟Model之间的联系,由Presenter充当桥梁,作到View-Model之间通讯的彻底隔离。架构

.NET程序员熟知的ASP.NET webform、winform基于事件驱动的开发技术就是使用的MVP模式。控件组成的页面充当View,实体数据库操做充当Model,而View和Model之间的控件数据绑定操做则属于Presenter。控件事件的处理能够经过自定义的IView接口实现,而View和IView都将对Presenter负责。mvc

 

3、MVVM(Model-View-ViewModel)框架

若是说MVP是对MVC的进一步改进,那么MVVM则是思想的彻底变革。它是将“数据模型数据双向绑定”的思想做为核心,所以在View和Model之间没有联系,经过ViewModel进行交互,并且Model和ViewModel之间的交互是双向的,所以视图的数据的变化会同时修改数据源,而数据源数据的变化也会当即反应到View上。双向绑定

这方面典型的应用有.NET的WPF,js框架Knockout、AngularJS等。orm

相关文章
相关标签/搜索