1.MVC
View:對應于xml布局檔案
Model:實體模型
Controllor:對應于Activity業務邏輯,資料處理和UI處理
xml的view功能太過于弱化,導緻actvity裡面即處理業務邏輯,又處理view。這樣activity的類的代碼比較長。
2.MVP
View:對應于Activity和xml,負責View的繪制以及與使用者互動
Model:依然是實體模型
Presenter: 負責完成View于Model間的互動和業務邏輯
用得比較多,把視圖操作和業務邏輯分開來。複雜的業務同時會導緻presenter層太大,代碼臃腫的問題。通過UI事件的觸發對資料進行處理。activity需要編寫大量的事件。通過事件調用presenter的業務處理方法。UI改變後牽扯的邏輯耦合度太高。View和Presenter隻是互相持有引用并互相做回調,代碼不美觀。
3.MVVM
View:對應于Activity和xml,負責View的繪制以及與使用者互動
Model:實體模型
ViewModel:負責完成View于Model間的互動,負責業務邏輯
資料綁定(Data Binding)、依賴屬性(Dependency Property)、指令(Command)、路由事件(Routed Event)
缺點:
1.資料綁定使得bug很難被調試
2.如果項目過大,資料綁定需要更大的記憶體
參考網址
http://www.jianshu.com/p/2fc41a310f79