美文网首页
iOS开发-MAC与MVVM设计模式

iOS开发-MAC与MVVM设计模式

作者: 文帝_Wendy | 来源:发表于2019-07-26 15:43 被阅读0次

浅谈MVC/MVP/MVVM设计模式

一.MVC架构, 优点在于将业务场景按展示数据类型划分出多个模块, 每个模块中的C层负责业务逻辑和业务展示, 而M和V应该是互相隔离的以做重用, 另外每个模块处理得当也可以作为重用单元. 拆分在于解耦, 顺便做了减负, 隔离在于重用, 提升开发效率. 缺点是没有区分业务逻辑和业务展示, 对单元测试不友好.

二.MVP作为MVC的进阶版, 提出区分业务逻辑和业务展示, 将所有的业务逻辑转移到P层, V层接受P层的数据更新通知进行页面展示. 优点在于良好的分层带来了友好的单元测试, 缺点在于分层会让代码逻辑优点绕, 同时也带来了大量的代码工作, 对程序员不够友好.

三.MVVM设计模式的优点

1.  通过数据绑定做数据更新 (双向绑定技术),当Model变化时,View-Model会自动更新,View也会自动变化。很好的做到数据的一致性;

2.  由于控制器的功能大都移动到View上处理,大大的对控制器进行了瘦身;

3.  View的功能进一步强化,具有控制的部分功能. 若想无限增强它的功能,甚至控制器的全部功能几乎都可以迁移到各个View上, View可以像控制器一样具有自己都View-Model

4.  可以对View或ViewController的数据处理部分抽象出来一个函数处理model。样它们专职页面布局和页面跳转,它们必然更一步的简化。

MVVM设计模式的缺点

1.  数据绑定也使得bug很难被调试。比如你看到页面异常了,有可能是你的View的代码有bug,也可能是你的model的代码有问题。数据绑定使得一个位置的Bug被快速传递到别的位置,要定位原始出问题的地方就变得不那么容易了。

2.  数据双向绑定不利于代码重用。客户端开发最常用的是View,但是数据双向绑定技术,让你在一个View都绑定了一个model,不同的模块model都不同。那就不能简单重用view了

3.  一个大的模块中model也会很大,虽然使用方便了也很容易保证数据的一致性,但是长期持有,不释放内存就造成话费更多的内存。

4.MVP和MVVM因为分层所以会建立MVC两倍以上的文件类, 需要良好的代码管理方式.

特别鸣谢大神提供参考与转载链接:  杂谈: MVC/MVP/MVVM - CocoaChina_一站式开发者成长社区

相关文章

网友评论

      本文标题:iOS开发-MAC与MVVM设计模式

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