UIKIT APP的基础知识(MVC和MVVM)

这适用于iOS App开发的初学者或各个阶段的所有开发人员,他们真的想回顾一下基础知识。

如今,所有iOS开发人员都在努力将其应用程序设计转变为MVVM设计模式,但是所有开发人员都知道为什么这样做吗? 还是您中的一员,谁正在更改模式,因为您的高级开发人员想要更改。 我会解释“ 为什么 ”,不用担心don

首先,我想让您知道UIKIT应用程序基于MVC(模型-视图-控制器)设计模式。 模型 –就像是您的应用程序的宝贵资源,就像您想要在应用程序上显示的数据,其应用程序的数据以及业务逻辑一样,可以帮助将数据修改为应用程序中更具表现力的方式。 视图 –主要处理用户界面,它是数据的可视界面。 控制器 –就像模型和视图之间的桥梁一样,它在适当的时候从模型和视图之间移动数据,反之亦然。 请查看下面由Apple提供的有关MVC设计模式如何工作的图像。

在了解了MVC的知识之后,让我们开始MVVM。

我将以最简单的方式来描述MVVM,MVVM只是MODEL-VIEW-VIEWMODEL。

在这种情况下, Viewmodel充当ViewModel之间的桥梁。 在大多数情况下,业务逻辑也从Model插入,并在ViewModel中完成。 其次,在这种情况下, View仅用于发布内容,它仅显示分配给它及其子视图的内容,应显示的内容以及应如何显示的内容再次由ViewModel处理。 看起来ViewModel是此设计模式中的主角。

那么,为什么许多iOS开发人员更喜欢MVVM而不是UIKIT的MVC?

当涉及到Xcode Project时,当您尝试在UIKIT APP中创建ViewController时,将以如下所示的形式创建它:

您可以看到Controller是用自己的View创建的,它们就像密不可分,因此,如果您要对Controller进行单元测试,它实际上涉及View,那么模拟ViewController非常困难,并且您需要做很多事情不知道ViewController会发生这种情况,而我们实际上没有任何控制权。 最后,您实际上没有机会独立测试实际的业务逻辑。

在MVVM设计模式中,您实际上可以独立地测试业务逻辑,可以将业务逻辑与模型分离,可以分离数据的转换方式,以便在View中显示,并且模拟ViewModel真的很容易。

如何将给定的UIKIT的MVC设计转换为MVVM,请查看以下图像:

因此,为了将MVC更改为MVVM,您需要一个额外的文件,例如:ViewModel.swift并将所有逻辑拉入其中,只是将整个ViewController视为MVVM。 因此,在这里,ViewController的部分是发布或显示数据和视图。

如果ViewController(在MVVM中为视图)要发布某些内容,则它应该来自ViewModel,后者再处理来自Model的数据以将其提供给ViewController。 如果用户想要更新其数据,则用户将更新屏幕上的数据,并将该信息发送到ViewModel,后者将更新模型。

那是最终读者,希望大家喜欢这篇文章。 如果您有任何疑问或想念任何内容,请在💁下方评论。 朱丽叶编码器签字……