浅谈MVC、MVP、MVVM架构模式的区别和联系
MVC、MVP、MVVM这些模式是为了解决开发过程中的实际问题而提出来的,目前作为主流的几种架构模式而被广泛使用。
一、MVC(Model-View-Controller)
MVC是比较直观的架构模式,用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)。
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模型)
二、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负责。
三、MVVM(Model-View-ViewModel)
如果说MVP是对MVC的进一步改进,那么MVVM则是思想的完全变革。它是将“数据模型数据双向绑定”的思想作为核心,因此在View和Model之间没有联系,通过ViewModel进行交互,而且Model和ViewModel之间的交互是双向的,因此视图的数据的变化会同时修改数据源,而数据源数据的变化也会立即反应到View上。
这方面典型的应用有.NET的WPF,js框架Knockout、AngularJS等。
参考资料:
http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
相关文章
- 强势解析eBay BASE模式、去哪儿及蘑菇街分布式架构
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- 第二十四章 CSP Session 管理 - 认证架构
- Pinterest架构:两年内月PV从零到百亿
- Java线程池架构(一)原理和源码解析
- C#数据库教程7-ADO.NET三层架构和数据库DBNull问题
- 简述单机,集群,分布式架构区别及联系
- Samza系统架构
- 什么是分层架构模式
- 大数据架构和模式(五)——对大数据问题应用解决方案模式并选择实现它的产品
- 大数据架构和模式(三)——理解大数据解决方案的架构层
- 《云计算:概念、技术与架构》一2.2 案例研究2:DTGOV
- 软件架构(三)名词解释:架构、设计、风格、模式
- Re:从 0 开始的微服务架构--(四)如何保障微服务架构下的数据一致性--转
- SQL Server架构----SQL Server的执行模式和SQLOS
- 超融合架构驱数据中心变革
- Kubernetes设计架构
- 【Redis】高可用架构之哨兵模式 - Sentinel