MVC MVP與MVVM架構模式

2022-08-15 21:33:16 字數 3504 閱讀 2260

mvc(model view controller):

view 層是介面,model 層是業務邏輯,controller 層用來排程 view 層和 model 層,

將使用者介面和業務邏輯合理的組織在一起,起粘合劑的效果

1、資料關係:

① view 接受使用者互動請求

② view 將請求轉交給 controller

③controller 操作 model 進行資料更新

④ 資料更新後,model 通知 view 更新變化的資料

⑤view 更新變化的資料

注:前 2 步可以替換成使用者直接與 controller 互動

2、通訊方式:單向通訊

3、mvc 優點:

① 耦合性低,檢視層和業務層分離 ==》 允許更改檢視層**而不用重新編譯模型和控制器**

② 重用性高  ③ 生命週期成本低  ④ 部署快

⑤ mvc 使開發和維護使用者介面的技術含量降低

⑥ 可維護性高,分離檢視層和業務邏輯層

4、mvc 缺點:

① 不適合中小型規模的應用程式

② 檢視與控制器間聯絡過於緊密

③檢視對模型資料的低效率訪問

5、結構實現:

① view:使用composite模式

② view 和 controller:使用strategy模式

③model 和 view:observer模式同步訊息

6、模式簡明:

① composite 模式:組合模式允許你將物件組合成樹形結構來表現」部分-整體「的層次結構,

使得客戶以一致的方式處理單個物件以及物件的組合

② strategy 模式:controller是view的乙個策略,controller對於view是可替換的,

view和controller的關係是一對多

在該模式下,乙個類的行為或其演算法可以在執行時更改

③ observer 模式:由兩部分組成,被觀察的物件和觀察者,觀察者也被稱為監聽者;

對應到 mvc 中,

model 是被觀察的物件,view 是觀察者,model 層一旦發生變化,view 層即被通知更新

mvp(model-view-presenter):

model 提供資料、view 負責顯式、presenter 負責邏輯處理,與 mvc 乙個重大區別是不直接使用 model

1、資料關係:

① view 接收使用者互動請求

② view 將請求轉交給 presenter

③presenter 操作 model 進行資料更新

④ model 通知 presenter 資料發生了變化

⑤presenter 更新 view 資料

2、通訊方式:雙向通訊

3、mvp 優點:

① 模型與檢視完全分離 ==》 可以修改檢視而不影響模型

② 可以更高效地使用模型 《== 所有互動都發生在 presenter 內部

③可以將乙個 presenter 用於多個檢視而不需要改變 presenter 的邏輯

④ 便於測試 《== 邏輯都放在 presenter  中,可脫離使用者介面來測試邏輯

4、mvp 缺點:

view 和 presenter 的互動過於頻繁

5、結構實現:

① view:使用composite模式

② view 和 presenter:使用mediator模式

③model 和 presenter:使用command模式同步資訊

6、模式簡明:

① mediator 模式:定義了一種封裝物件之間互動的中介

② command 模式:所有動作或者行為所需資訊被封裝到乙個物件之內,解耦了傳送者與接收者之間的聯絡

command 是無狀態惰性的,只有在需要的時候才被建立

mvvm(model-view-viewmodel):

mvp 模式和 wpf 結合的應用方式發展演變過來的一種新型架構模式

1、資料關係:

① view 接收使用者互動請求

② view 將請求轉交給 viewmodel

③ viewmodel 操作 model 資料更新

④ model 更新完資料,通知 viewmodel 資料發生變化

⑤viewmodel 更新 view 資料

2、通訊方式:雙向繫結(view/model 變化,自動反映在 viewmodel,反之亦然)

3、mvvm 優點:

① 低耦合,view 可獨立於 model 變化和修改,乙個 viewmodel 可繫結到不同的 「view」 上,

當 view 變化時 model 可不變,反之亦然

② 可重用性,可把一些檢視邏輯放在乙個 viewmodel 裡,讓多個 view 重用這段檢視邏輯

③獨立開發,不同人員可注重不同的部分

④ 介面素來是比較難於測試的,而現在測試可以針對viewmodel來寫

4、mvvm 和 mvp 的區別:

mvvm 模式將 presenter 改名為 viewmodel,基本上與 mvp 模式完全一致

唯一的區別是,它採用雙向繫結(data-binding):view的變動,自動反映在 viewmodel,反之亦然。

這樣開發者就不用處理接收事件和view更新的工作,框架已經幫你做好了。

架構之路 MVVM架構模式

model層就是職責資料的儲存 讀取網路資料 運算元據庫資料以及i o,一般會有乙個viewmodel物件來呼叫獲取這一部分的資料。view層做的僅僅和ui相關的工作,我們只在xml activity fragment寫view層的 view層不做和業務相關的事,也就是我們的activity 不寫和...

MVVM架構模式解析

mvvm定義mvvm是model view viewmodel的簡寫。即模型 檢視 檢視模型。模型 指的是後端傳遞的資料。檢視 指的是所看到的頁面。檢視模型 mvvm模式的核心,它是連線view和model的橋梁。它有兩個方向 一是將 模型 轉化成 檢視 即將後端傳遞的資料轉化成所看到的頁面。實現的...

理解MVC,MVP和MVVM設計模式

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