1.關聯模式
MVC
- 視圖(View):用戶界面。
- 控制器(Controller):業務邏輯
- 模型(Model):數據保存
View 傳送指令到 Controller
Controller 完成業務邏輯後,要求 Model 改變狀態
Model 將新的數據發送到 View,用戶得到反饋
MVP
- Model 提供數據
- View 負責顯示
- Presenter 負責邏輯的處理
各部分之間的通信,都是雙向的。
View 與 Model 不發生聯繫,都通過 Presenter 傳遞。
View 非常薄,不部署任何業務邏輯,稱爲"被動視圖"(Passive View),即沒有任何主動性,而Presenter非常厚,所有邏輯都部署在那裏。
2.MVVM
- Model 提供數據
- View 負責顯示
- ViewModel 處理用戶輸入,反饋數據變化
MVVM與MVP最大的不同就在於View與ViewModel交互的時候使用了鬆耦合的雙向綁定,而不是像View與Presenter那樣直接交互。ViewModel作爲View的數據映射,通常View上有什麼屬性,ViewModel上也會存在相應的一個屬性,這兩個屬性通過事件實現了雙向的綁定,常見的MVVM框架都替我們完成了這樣的綁定過程。