理解MVC,MVP和MVVM設計模式

2021-07-22 05:30:15 字數 2187 閱讀 8967

有3個非常受歡迎的mv-*系列設計模式:mvc,mvp,mvvm。他們被廣泛應用於不多種結束。這篇文章我回闡述我自己對這3個設計模式的看法。

mvc模式:

mvc即model-view-controller。他是2023年代被引入到軟體設計大眾的。mvc模式致力於關注點的切分,這意味著model和controller的邏輯是不與使用者介面(view)掛鉤的。因此,維護和測試程式變得更加簡單容易。

mvc設計模式將應用程式分離為3個主要的方面:model,view和controller

model代表了描述業務路邏輯,業務模型、資料操作、資料模型的一系列類的集合。這層也定義了資料修改和操作的業務規則。

02.view

view代表了ui元件,像css,jquery,html等。他只負責展示從controller接收到的資料。也就是把model轉化成ui。

03.controller

controll負責處理流入的請求。它通過view來接受使用者的輸入,之後利用model來處理使用者的資料,最後把結果返回給view。controll就是view和model之間的乙個協調者。

mvp模式:

這個模式把presenter換成controller就非常和mvc相像了。這個設計模式把應用程式分成了3個主要方面:model、view和presenter。

model層代表了描述業務邏輯和資料的一系列類的集合。它也定義了資料修改和操作的業務規則。

02.view

view代表了ui元件,像css,jquery,html等。他只負責展示從presenter接收到的資料。也就是把模型(譯者注:非modle層模型)轉化成ui。

03.presenter

presenter負責處理view背後所有的ui事件。它通過view接收使用者輸入,之後利用model來處理使用者的資料,最後把結果返回給view。與view和controller不同,view和presenter之間是完全解耦的,他們通過介面來互動。另外,presenter不像controller處理進入的請求。

這個模式被普遍的引用於asp.net web forms 應用程式。並且也應用於windows form。

mvp模式關鍵點:

01.使用者和view互動。

02.view和presenter是一對一關係。意味著乙個presenter只對映乙個view。

03.view持有presenter的引用(譯者注:應該是通過接**互,並不直接引用presenter),但是view不持有model的引用(譯者注:即使介面,也不會)。

04.在view和presenter之間可以雙向互動。

mvvm模式:

mvvm即model-view-view model。這個模式提供對view和view model的雙向資料繫結。這使得view model的狀態改變可以自動傳遞給view。典型的情況是,view model通過使用obsever模式(觀察者模式)來將view model的變化通知給model。

model層代表了描述業務邏輯和資料的一系列類的集合。它也定義了資料修改和操作的業務規則。

02.view

view代表了ui元件,像css,jquery,html等。他只負責展示從presenter接收到的資料。也就是把模型轉化成ui。

03.view model

view model負責暴漏方法,命令,其他屬性來操作view的狀態,組裝model作為view動作的結果,並且觸發view自己的事件。

這個模式被廣泛應用於wpf,silverlight,caliburn,nroute 等。

mvvm模式關鍵點:

01.使用者和view互動。

02.view和viewmodel是多對一關係。意味著乙個viewmodel只對映多個view。

03.view持有viewmodel的引用,但是viewmodel沒有任何view的資訊。

04.view 和viewmodel之間有雙向資料繫結關係。

理解MVC,MVP和MVVM設計模式

有3個非常受歡迎的mv 系列設計模式 mvc,mvp,mvvm。他們被廣泛應用於不多種結束。這篇文章我回闡述我自己對這3個設計模式的看法。mvc模式 mvc即model view controller。他是1970年代被引入到軟體設計大眾的。mvc模式致力於關注點的切分,這意味著model和cont...

MVC MVP和MVVM的區別

引用自 url 看過高人對這三種常見的.net模式做了分析,總結下來其實只有2種模式。mvvm只是mvp的馬甲。這三種 兩種 模式的不同點在於響應請求的最後一步,也就是對頁面的更新響應,由那一層來完成。mvc模式下,是由view自己進行更新響應,control vm或presenter 是被動等待v...

MVC,MVP 和 MVVM 的區別

一 mvc mvc模式的意思是,軟體可以分成三個部分。檢視 view 使用者介面。控制器 controller 業務邏輯 模型 model 資料儲存 各部分之間的通訊方式如下。view 傳送指令到 controller controller 完成業務邏輯後,要求 model 改變狀態 model 將...