mvc是model-view-controller模型-視圖-控制器的簡寫
- model模型:數(shù)據(jù)保存稚字;
- view視圖:用戶界面;
- controller控制器:業(yè)務(wù)邏輯抵卫;
他在發(fā)呆
他們之間的通信都是單向的:view -> controller -> model -> view;
接受用戶指令時疆股,MVC 可以分成兩種方式盼樟。
一種是通過 View 接受指令,傳遞給 Controller。
另一種是直接通過controller接受指令搞隐。
而根據(jù)mvc模式驹愚,有延伸出MVP和MVVP兩種模式
MVP
是將mvc模式中的constroller改為Presenter,同時也改變了通信方向劣纲;
(presenter任命)
他在發(fā)呆
由圖可見
- 各部分聯(lián)系都變成雙向的逢捺,view與model之間不再發(fā)生之間聯(lián)系,而是通過presenter進(jìn)行聯(lián)系癞季;
- View 不部署任何業(yè)務(wù)邏輯劫瞳,稱為"被動視圖"(Passive View),即沒有任何主動性绷柒,而 Presenter所有邏輯都部署在那里志于。
MVVM
MVVM 模式將 Presenter 改名為 ViewModel,基本上與 MVP 模式完全一致辉巡。
唯一的區(qū)別是恨憎,它采用雙向綁定(data-binding):View的變動,自動反映在 ViewModel郊楣,反之亦然憔恳。Angular和 Ember 都采用這種模式。