MVC,MVP,MVVM
阿新 • • 發佈:2018-04-18
route src HA 路由 路由器 控制器 view 數據保存 9.png
MVC
MVC模式的意思是,軟件可以分成三個部分
視圖(View):用戶界面。
控制器(Controller):業務邏輯
模型(Model):數據保存
實際項目往往采用更靈活的方式,以 Backbone.js 為例。
- 用戶可以向 View 發送指令(DOM 事件),再由 View 直接要求 Model 改變狀態。
- 用戶也可以直接向 Controller 發送指令(改變 URL 觸發 hashChange 事件),再由 Controller 發送給 View。
- Controller 非常薄,只起到路由的作用,而 View 非常厚,業務邏輯都部署在 View。所以,Backbone 索性取消了 Controller,只保留一個 Router(路由器) 。
MVP
- 各部分之間的通信,都是雙向的。
- View 與 Model 不發生聯系,都通過 Presenter 傳遞。
- View 非常薄,不部署任何業務邏輯,稱為"被動視圖"(Passive View),即沒有任何主動性,而 Presenter非常厚,所有邏輯都部署在那裏。
MVVM
MVVM 模式將 Presenter 改名為 ViewModel,基本上與 MVP 模式完全一致。
唯一的區別是,它采用雙向綁定(data-binding):View的變動,自動反映在 ViewModel,反之亦然。Angular 和 Ember 都采用這種模式。
Reference
1.http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
MVC,MVP,MVVM