mvc
model view controller
用戶 ->操控界面 ->業務邏輯 ->更新數據 ->更新view
特點:單向通信,view直接訪問model
總結:1. view依賴model,view帶有業務邏輯,更改view相對困難 2. Controller會變得很複雜
mvp
model view Presenter
用戶 ->操控view ->presenter ->更新數據 ->presenter->更新view
特點:雙向通信,view和model完全分離,所有邏輯交互都在presenter(view可能也會存在業務邏輯)
總結:解決了mvc的第一個缺點,第二個缺點仍沒有解決
mvvm
model view viewmodel
用戶 ->viewViewModel ->更新Model ->通知ViewModel發生數據變化 ->viewModel更新View
特點:雙向綁定 view和Model的變動自動反應在ViewModel,反之亦然