MVVM MVC
Posted 清语堂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVVM MVC相关的知识,希望对你有一定的参考价值。
MVVM是MVC的增强版,实质上和MVC没有本质区别,只是代码的位置变动而已.
MVC
Model:数据模型,用来存储数据
View:视图界面,用来展示UI界面和响应用户交互
Controller:控制器(大管家角色),监听模型数据的改变和控制视图行为、处理用户交互
他们工作和关系看起来是如此清晰,是一种非常好的设计思想。
MVVM
MVVM优点:
1.Controller清晰简洁: ViewModel分离了大部分Controller代码,更加清晰和容易维护。
2.方便测试:开发中大部分Bug来至于逻辑处理,由于ViewModel分离了许多逻辑,可以对ViewModel构造单元测试。
3.开发解耦(举两个例子):
a.一人负责逻辑实现、另一人负责UI实现;
b.敏捷开发时,会发经常发不是等后端做好了接口我们再去开发,不过在没有接口的情况下通常我们可以把Controller和View完成。
缺点:
1.看起来代码会比MVC多点
2.需要对每个Controller实现绑定,如果处理不好,反而会有一种“画虎不成反类犬”的感觉
总结
在我实际使用过程中,MVVM写出的代码量并不比MVC的少,有时反而还会多点,毕竟多了一个数据绑定过程,但逻辑会清晰很多,对于多人开发的团队,还是有不少优势的,缺点和优点相比不值一提,总之推荐使用
当然,说了这么多全是理论的东西,没有任何代码和演示,你可能都困了,至于代码我就不列举了,GitHub上有很多案例,这里推荐两个C-41和MVVMTest
以上是关于MVVM MVC的主要内容,如果未能解决你的问题,请参考以下文章
《Android构建MVVM》系列 之 MVVM架构快速入门