一、mvc
mvc模式的意思是,軟體可以分成三個部分。
檢視(view):使用者介面。
控制器(controller):業務邏輯
模型(model):資料儲存
各部分之間的通訊方式如下。
view 傳送指令到 controller
controller 完成業務邏輯後,要求 model 改變狀態
model 將新的資料傳送到 view,使用者得到反饋
所有通訊都是單向的。
二、互動模式
接受使用者指令時,mvc 可以分成兩種方式。一種是通過 view 接受指令,傳遞給 controller。
另一種是直接通過controller接受指令。
三、例項:backbone
實際專案往往採用更靈活的方式,以 backbone.js 為例。
使用者可以向 view 傳送指令(dom 事件),再由 view 直接要求 model 改變狀態。
使用者也可以直接向 controller 傳送指令(改變 url 觸發 hashchange 事件),再由 controller 傳送給 view。
controller 非常薄,只起到路由的作用,而 view 非常厚,業務邏輯都部署在 view。所以,backbone 索性取消了 controller,只保留乙個 router(路由器) 。
四、mvp
mvp 模式將 controller 改名為 presenter,同時改變了通訊方向。
各部分之間的通訊,都是雙向的。
view 與 model 不發生聯絡,都通過 presenter 傳遞。
view 非常薄,不部署任何業務邏輯,稱為"被動檢視"(passive view),即沒有任何主動性,而 presenter非常厚,所有邏輯都部署在那裡。
五、mvvm
mvvm 模式將 presenter 改名為 viewmodel,基本上與 mvp 模式完全一致。
唯一的區別是,它採用雙向繫結(data-binding):view的變動,自動反映在 viewmodel,反之亦然。angular 和 ember 都採用這種模式。
(完)引用阮一峰的網路日誌
引用:
MVC MVP和MVVM的區別
引用自 url 看過高人對這三種常見的.net模式做了分析,總結下來其實只有2種模式。mvvm只是mvp的馬甲。這三種 兩種 模式的不同點在於響應請求的最後一步,也就是對頁面的更新響應,由那一層來完成。mvc模式下,是由view自己進行更新響應,control vm或presenter 是被動等待v...
MVC,MVP 和 MVVM 的詳解
mvc模式的意思是,軟體可以分成三個部分。各部分之間的通訊方式如下。view 傳送指令到 controller controller 完成業務邏輯後,要求 model 改變狀態 model 將新的資料傳送到 view,使用者得到反饋 所有通訊都是單向的。接受使用者指令時,mvc 可以分成兩種方式。一...
mvc,mvp和mvvm的簡單介紹
mvc是最經典的開發模式之一,在上大學的時候老師教的也是這個。mvc有兩個很明顯的問題 1.m層和v層直接打交道,導致這兩層耦合度高 2.因為所有邏輯都寫在c層,導致c層特別臃腫 為了解決這兩個問題,mvc的變種模式出現了mvp和mvvm.mvc架構方式的變種,使用presenter來代替contr...