MVC
應用大致爲三部分:
視圖(View):用戶界面,用戶操作輸入
控制器(Controller):業務邏輯,不同的數據服務模型(Model):數據保存,也就是不同的數據實體
各部分之間的通信方式:
View傳送指令到Controller
Controller完成業務邏輯後,要求Model改變狀態
Model將新的數據發送到View,用戶得到反饋
M、V、C之間所有的通信都是單向的
接受用戶指令時,MVC可以分爲兩種方式:
1.通過View接受指令,傳遞給Controller
2.直接通過Controller接受指令
MVP
MVP模式將Controller改名爲Presenter,同時改變了通信方向 各部分之間的通信,都是雙向的
View和Model不發生聯繫,都通過Presenter傳遞
View非常薄,不部署任何業務邏輯,稱爲"被動視圖"(Passive View),即沒有任何主動性,而Presenter非常厚,所有邏輯都部署在那裏
MVVM
MVVM模式將Presenter改名爲ViewModel,基本上與MVP模式完全一致。
唯一的區別是,它採用雙向綁定(data-binding):View的變動,自動反映在ViewModel,反之亦然。