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開發經驗。)

相關文章
相關標籤/搜索