mvpmvvm
總結mvc(model-view-controller)是最常見的軟體架構之一,業界有著廣泛應用。它本身很容易理解,但是要講清楚,它與衍生的 mvp 和 mvvm 架構的區別就不容易了。
m—model代表資料層 ,儲存資料
v—view檢視層,使用者看到的介面
c—controller控制層,用來完成業務邏輯
各部分之間的通訊方式如下。所有通訊都是單向的。單向資料流
view 傳送指令到 controller
controller 完成業務邏輯後,要求 model 改變狀態
model 將新的資料傳送到 view,使用者得到反饋
互動模式
接受使用者指令時,mvc 可以分成兩種方式。一種是通過 view 接受指令,傳遞給 controller。
另一種是直接通過controller接受指令。
實際專案往往採用更靈活的方式,以 backbone.js 為例。
使用者可以向 view 傳送指令(dom 事件),再由 view 直接要求 model 改變狀態。
使用者也可以直接向 controller 傳送指令(改變 url 觸發 hashchange 事件),再由 controller 傳送給 view。
controller 非常薄,只起到路由的作用,而 view 非常厚,業務邏輯都部署在 view。所以,backbone 索性取消了 controller,只保留乙個 router(路由器) 。
mvp 模式將 controller 改名為 presenter,同時改變了通訊方向
各部分之間的通訊,都是雙向的。
view 與 model 不發生聯絡,都通過 presenter 傳遞。
view 非常薄,不部署任何業務邏輯,稱為"被動檢視"(passive view),即沒有任何主動性,而 presenter非常厚,所有邏輯都部署在那裡。
mvvm 模式將 presenter 改名為 viewmodel,基本上與 mvp 模式完全一致。
唯一的區別是,它採用雙向繫結(data-binding):view的變動,自動反映在 viewmodel,反之亦然。angular 和 ember 都採用這種模式。
mvc| c改名為p
mvp| p更像是媒人了( 連線 m v 的橋梁)
mvvm
| vm 是 由 p改名得來的 vm 和 v 的關係更加的親密
「mvvm」:雙向資料繫結,view的變動,對映在 viewmodel,反之一樣
MVC MVP MVVM 三種設計模式的理解
mvc model view controller mvp model view presenter mvvm model view view viewmodel mvc模式 簡介 model view controller mvc模式致力於關注點的切分,這意味著model和controller的邏...
MVC MVP MVVM三種架構模式的區別
一 mvc model view controller mvc是比較直觀的架構模式,使用者操作 view 負責接收使用者的輸入操作 controller 業務邏輯處理 model 資料持久化 view 將結果反饋給view 二 mvp model view presenter mvp是把mvc中的c...
三種工廠模式
本文介紹設計模式中的工廠模式。工廠模式,顧名思義,就是本來我們需要某樣東西,需要自己造,可有了工廠呢?我需要該東西時,只需告訴工廠,工廠就會生產該東西,一定程度上,把使用者和生產者分開了。解耦了。追本溯源,假設我們現在有乙個類a,類a裡需要類b的乙個物件,一般的處理是這樣,b b new b 但這樣...