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...