文章:设计模式
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层编写代码中,要求开发者须要将每一个方法尽量的作的功能单一,不与外部有任何的引用或者是联系,无形中提升了代码的健壮性,方便了后期的单元测试。