1、MVC架構
MVC(Model-View-Controller)是最常見的軟件架構之一,應用十分廣泛。
1) 軟件可以分成三個部分:
① 視圖(View):用戶界面。
② 控制器(Controller):業務邏輯。
③ 模型(Model):數據保存。
2) 三個部分之間的通信方式:
① View接受用戶的指令。
② View將請求傳送給Controller。
③ Controller完成業務邏輯後,要求 Model 改變狀態。
④ Model更新View的數據。
3) MVC架構的特點:
所有通信都是單向的。
2、MVP架構
將 Controller 改名爲 Presenter,同時改變了通信方向。和MVC不同的是,Presenter會反作用於View,而MVC中Controller只會被動地接受View的指揮。
在MVP裏,Presenter完全把Model和View進行了分離,主要的程序邏輯在Presenter裏實現。
MVP與MVC的區別是MVP中的Model與View之間不通信。
1) MVP架構的特點:
① 各部分之間的通信都是雙向的。
② View 與 Model 不發生聯繫,都通過 Presenter 傳遞。
③ View 不部署任何業務邏輯,即沒有任何主動性,稱爲被動視圖,所有邏輯都部署在Presenter。
2) 三個部分之間的通信方式:
① View接受用戶的指令。
② View將請求傳送給Presenter。
③ Presenter完成業務邏輯後,要求 Model 改變狀態。
④ Model通知Presenter數據更新。
⑤ Presenter更新View的數據。
3) MVP架構的優勢:
① Model與View完全分離,修改互不影響。
② 高效:主要的程序邏輯都在Presenter裏實現。
③ 一個Presenter可用於多個View,而不需要改變Presenter的邏輯,因爲View總是比Model變化頻繁。
3、MVVM架構
將 Presenter 改名爲 ViewModel,基本上與 MVP 模式完全一致。
MVVM與MVP的區別是它採用雙向綁定,處理接收事件和View更新的工作不再需要開發者來完成,而可以交給框架。
1) MVVM架構的特點:
雙向綁定——View/Model的變動,自動反映在 ViewModel,反之亦然。
2) 三個部分之間的通信方式:
① View接受用戶的指令。
② View將請求傳送給ViewModel。
③ ViewModel完成業務邏輯後,要求 Model 改變狀態。
④ Model通知ViewModel數據更新。
⑤ ViewModel更新View的數據。
3) MVVM架構的優點
① 低耦合:View和Model可以相互獨立地修改,一個ViewModel可以綁定到不同的View上,View變化時Model可以不變,Model變化時View也可以不變。
② 可重用性:可以把一些視圖邏輯放在一個ViewModel裏面,讓很多view重用這段視圖邏輯。
③ 獨立開發:開發人員可以專注於業務邏輯和數據的開發(ViewModel),設計人員可以專注於頁面設計,生成xml代碼。
④ 可測試:測試可以針對ViewModel來寫。