MVC,MVP和MVVM的區別

一.     MVC

MVC:html

  • 視圖(View) :用戶界面
  • 控制器(Controller):業務邏輯 
  • 模型(Model) :數據保存

特色:是單向數據綁定,經過js(控制器)更新Model時,View會自動更新,而View不能更新Model。mvc

各部分之間的通訊方式以下:mvvm

  1. View 傳送指令到 Controller
  2. Controller 完成業務邏輯後,要求 Model 改變狀態
  3. Model 將新的數據發送到 View,用戶獲得反饋

實例:Backonespa

二:MVP

MVP 模式將 Controller 更名爲 Presenter,同時改變了通訊方向。雙向綁定

  1. 各部分之間的通訊,都是雙向的;
  2. View 與 Model 不發生聯繫,都經過 Presenter 傳遞;
  3. View 很是薄,不部署任何業務邏輯,稱爲"被動視圖"(Passive View),即沒有任何主動性,而 Presenter很是厚,全部邏輯都部署在那裏。

三.MVVM

MVVM 模式將 Presenter 更名爲 ViewModel,基本上與 MVP 模式徹底一致。htm

惟一的區別是,它採用雙向綁定:View的變更,自動反應在ViewModel中,反之亦然。Angular和Ember都採用這種模式。blog

摘自:http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html部署

相關文章
相關標籤/搜索