MVC、MVP、MVVM 模式对比

  MVC、MVP和MVVM这些开发模式为了分离视图(View)和模型(Model)而提出来的,直白说就是为了先后端分离。数据库

  1. MVC(Model View Controller)模式后端

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

  MVC使用很是普遍,好比JavaEE中的SSH框架(Struts+Spring+Hibernate)、.NET中的ASP.NET MVC框架。框架

  2. MVP(Model View Presenter)模式前后端分离

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

  ASP.NET中的 Web Froms 技术即支持MVP模式,由于事件驱动的开发技术使用的就是MVP模式。  控件组成额页面充当 View,实体数据库操做充当 Model,而 View 和 Model 之间的控件数据绑定操做则属于 Presenter。控件事件的处理能够经过自定义的 iView 接口实现,而 View 和 iView 都将对 Presenter 负责。设计

  3. MVVM(Model View ViewModel)模式3d

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

  MVVM模式优势有如下几点:blog

  • 视图层低耦合
  • 各类代码写成控件后可重用
  • 先后端分离明显
  • 便于测试和部署

 

  本文参考了 张帆 老师对几种开发模式的看法(张帆,资深全栈开发工程师,有多年的项目设计和Web开发经验。)

相关文章
相关标签/搜索