说说你对MVVM的理解?

3,120 阅读2分钟

MVVM是MVC的增强版,实质上和MVC没有本质区别,只是代码的位置变动而已。

MVC简要

MVC的完整写法应该是:model、view、controller,分别表示数据,视图,控制器。

model:数据模型,用来存储数据。

view:视图界面,用来展示UI界面和响应用户交互。

controller:控制器,监听模型数据的改变和控制视图行为、处理用户交互。

MVVM简要

Model-ViewModel-View-Controller

我们发现比MVC架构中多了一个ViewModel,这个ViewModel是MVVM相对于MVC改进的核心思想。在开发过程中,由于需求的变更和添加。项目的复杂度越来越高,代码量越来越大,此时我们就会发现MVC维护起来有些吃力,首先被人吐槽的最多的就是MVC的简写变成了Massive-View-Controller(沉重的Controller)。

由于Controller主要是来处理各种逻辑和数据化,复杂业务逻辑界面的Controller非常庞大,维护困难,所以有人就想到把Controller的数据和逻辑处理部分从中抽离出来,用一个专门的对象去管理,这个对象就是ViewModel,是Model和Controller之间的一座桥梁。当人们去尝试的时候,发现Controller中的代码变得非常少,维护起来也变得容易,只需要Controller和ViewModel做数据绑定即可。这就催生出了MVVM的热潮。

MVVM的优缺点

优点:

1,Controller清晰简洁:ViewModel分离了大部分的Controller代码,更加清晰和容易维护。

2,方便测试:开发中的大部分BUG来自逻辑处理,由于ViewModel分离了许多的逻辑,可以对ViewModel构造单元测试。

3,开发解耦:

a,一人负责逻辑实现,另外一人负责UI实现;

b,敏捷开发时,我们不需要等后端做好了接口再去开发,我们可以提前把Controller和View完成。

缺点:

1,看起来代码会比MVC多。

2,需要对每个Controller实现绑定。

原文:zhuanlan.zhihu.com/p/59467370

如侵权,请联系删除。