MVC MVP MVVM 三種設計模式的理解

2021-07-23 13:54:44 字數 2040 閱讀 4620

mvc            model  ,  view  ,  controller

mvp            model  ,  view  ,  presenter

mvvm         model  ,  view  ,  view        ,  viewmodel

mvc模式:

簡介:model - view - controller

mvc模式致力於關注點的切分,這意味著model和controller的邏輯是不與使用者介面(view)掛鉤的。因此,維護和測試程式變得更加簡單容易。

01.model

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

02.view

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

03.controller

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

mvp模式:

01.model

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處理進入的請求。

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等。

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三種模式

mvpmvvm 總結mvc model view controller 是最常見的軟體架構之一,業界有著廣泛應用。它本身很容易理解,但是要講清楚,它與衍生的 mvp 和 mvvm 架構的區別就不容易了。m model代表資料層 儲存資料 v view檢視層,使用者看到的介面 c controller...

MVC MVP MVVM三種架構模式的區別

一 mvc model view controller mvc是比較直觀的架構模式,使用者操作 view 負責接收使用者的輸入操作 controller 業務邏輯處理 model 資料持久化 view 將結果反饋給view 二 mvp model view presenter mvp是把mvc中的c...

Linux三種網路 vmware三種網路模式

nat 網路位址轉換 預設使用vmnet8 原理 nat是network address translate的簡稱 nat計數應用在internet閘道器和路由器上,比如192.168.0.123這個位址要訪問internet,它的資料報就要通過乙個閘道器或者路由器,而閘道器或者路由器擁有乙個能訪問...