淺談MVC、MVP和MVVM架構

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來寫。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章