天天看點

android中的MVC,MVP和MVVM模式簡單總結

1.MVC

View:對應于xml布局檔案

Model:實體模型

Controllor:對應于Activity業務邏輯,資料處理和UI處理

xml的view功能太過于弱化,導緻actvity裡面即處理業務邏輯,又處理view。這樣activity的類的代碼比較長。

android中的MVC,MVP和MVVM模式簡單總結

2.MVP

View:對應于Activity和xml,負責View的繪制以及與使用者互動

Model:依然是實體模型

Presenter: 負責完成View于Model間的互動和業務邏輯

用得比較多,把視圖操作和業務邏輯分開來。複雜的業務同時會導緻presenter層太大,代碼臃腫的問題。通過UI事件的觸發對資料進行處理。activity需要編寫大量的事件。通過事件調用presenter的業務處理方法。UI改變後牽扯的邏輯耦合度太高。View和Presenter隻是互相持有引用并互相做回調,代碼不美觀。

android中的MVC,MVP和MVVM模式簡單總結

3.MVVM

View:對應于Activity和xml,負責View的繪制以及與使用者互動

Model:實體模型

ViewModel:負責完成View于Model間的互動,負責業務邏輯

資料綁定(Data Binding)、依賴屬性(Dependency Property)、指令(Command)、路由事件(Routed Event)

android中的MVC,MVP和MVVM模式簡單總結

缺點:

1.資料綁定使得bug很難被調試

2.如果項目過大,資料綁定需要更大的記憶體

參考網址

http://www.jianshu.com/p/2fc41a310f79