五、MVVM

作者: 流小贝 | 来源:发表于2022-05-07 10:07 被阅读0次

    一、什么是MVVM框架

    MVVM框架是MVC框架的增强版。

    MVVM描述的是一个基本结构,和MVC架构相比,MVVM架构多了VM(ViewModel)。

    MVC架构

    Model:程序中要操纵的实际对象的抽象,为Controller提供经过抽象的业务数据,供Controller调度

    View:视图,负责界面的元素的展示

    Controller:控制器,管理View的声明周期及子view的生成和组装,负责Model和View之间的通信。

    MVVM架构

    Model:程序中要操纵的实际对象的抽象

    View(ViewController):MVVM中的View不再是UIView的子类,而变成了UIViewController的子类。这里的View实际上就是MVC中剥离了处理呈现View逻辑部分的Controller,因此它仍然有各种UIView的属性,仍然有ViewController的声明周期的各种方法,但是这里的Controller不再负责数据的请求以及处理逻辑,因此不再臃肿。

    ViewModel:MVVM中,ViewModel代替了MVC中的Controller成为了协调者的角色,ViewModel被View(ViewController)持有,同时持有者Model。数据请求以及处理逻辑都放在ViewModel中,View(ViewController)就瘦了下来。

    二、MVC缺点从而诞生了MVVM框架

    MVVM框架是在MVC的基础上演化而来,MVVM想要解决的问题是尽可能地减少Controller的任务。

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

    MVC框架的优势:

    1、应用广泛,几乎所有前端语言都有类似MVC的设计痕迹

    2.、设计思想非常简洁,学习成本很低,新人上手非常容易。

    MVC框架的问题:

    MVC并没有对数据请求和处理逻辑代码应该放在哪一层做出明确地划分,因此一旦页面逻辑或交互稍微复杂,Controller就会变得很臃肿,代码也就越来越难维护。

    MVVM框架的优势:

    1. View(ViewController)通过对ViewModel中的数据进行绑定来更新界面,不用通过逻辑或者条件判断来更新view,大大降低了复杂交互时出bug的几率。

    2. View(ViewController)中代码简洁,后期的维护和优化比较容易。

    MVVM框架的问题:

    学习成本比MVC高,如果对MVVM的职责划分理解不透彻,很容易导致ViewModel的存在形同虚设, 反而增加了维护的成本。

    三、MVVM的利处

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

    2、方便测试,开发中大部分的BUG都来自于逻辑的处理,由于ViewModel分离了许多逻辑,可以对ViewModel进行单元测试;

    3、开发解耦,一个人负责逻辑的实现,一个人负责UI的实现。敏捷开发的时候,会出现等后端的接口开发完成之后,我们才对其进行开发,不过在没有接口的情况下,我们可以先把controller和view进行完成;

    四、MVVM弊处

    1、代码会比MVC多一点;

    2、需要对每一个controller进行绑定。

    五、小结

    在实际开发的过程中,MVVM的代码量并不比MVC少。因为多了一个数据绑定的过程,但是逻辑会清晰很多,对于多人开发的团队,还是有不少优势的。

    相关文章

      网友评论

        本文标题:五、MVVM

        本文链接:https://www.haomeiwen.com/subject/wevayrtx.html