文章:設計模式
1.框架
[譯文] 我不使用Android Data Binding的四個理由函數
https://www.jianshu.com/p/559adeaaeffd佈局
2.單元測試
原文:https://blog.csdn.net/shenbin1/article/details/78204940 測試
MVVM設計模式的優勢.net
1.雙向綁定技術,當Model變化時,View-Model會自動更新,View也會自動變化。很好作到數據的一致性,不用擔憂,在模塊的這一塊數據是這個值,在另外一塊就是另外一個值了。因此 MVVM模式有些時候又被稱做:model-view-binder模式。
2.View的功能進一步的強化,具備控制的部分功能,若想無限加強它的功能,甚至控制器的所有功幾乎均可以遷移到各個View上(不過這樣不可取,那樣View幹了不屬於它職責範圍的事情)。View能夠像控制器同樣具備本身的View-Model.
3.因爲控制器的功能大都移動到View上處理,大大的對控制器進行了瘦身。不用再爲看到龐大的控制器邏輯而發愁了。
4.能夠對View或ViewController的數據處理部分抽象出來一個函數處理model。這樣它們專職頁面佈局和頁面跳轉,它們必然更一步的簡化。設計
MVVM設計模式的缺點
第一點:數據綁定使得 Bug 很難被調試。你看到界面異常了,有多是你 View 的代碼有 Bug,也多是 Model 的代碼有問題。數據綁定使得一個位置的 Bug 被快速傳遞到別的位置,要定位原始出問題的地方就變得不那麼容易了。
第二點:一個大的模塊中,model也會很大,雖然使用方便了也很容易保證了數據的一致性,當時長期持有,不釋放內存,就形成了花費更多的內存。
第三點:數據雙向綁定不利於代碼重用。客戶端開發最經常使用的重用是View,可是數據雙向綁定技術,讓你在一個View都綁定了一個model,不一樣模塊的model都不一樣。那就不能簡單重用View了。雙向綁定
MVVM框架簡介及優點調試
MVVM框架相似於早期的MVC和近期的MVP,可是比起這兩個更爲強勢。MVVM中的ViewModel層相似MVP的Presenter層,所須要作的徹底就是跟邏輯相關的代碼,徹底不會涉及到UI。當數據變化,直接驅動UI的改變,中間省去了MVP中冗餘的接口。同時,在ViewModel層編寫代碼中,要求開發者須要將每一個方法儘量的作的功能單一,不與外部有任何的引用或者是聯繫,無形中提升了代碼的健壯性,方便了後期的單元測試。