iOS MVVM的理解与分析
https://www.jianshu.com/p/6560505fa0f1
MVVM

MVVM
MVVM:中心思想是数据实现双向绑定,业务逻辑与试图的分离。
单独的看图可能太抽象了项目地址:demo
项目总体框架:

整体的框架
正向绑定:view--->viewModel

正向绑定
反向绑定:viewModel---->view(用了KVO)


数据变化
到了这里基本上实现了MVVM的双向绑定,没有很难的理解的地方;简单说一下mvvm优缺点:
优点:
1. 任务均摊 -- MVVM 的 View 要比 MVP 中的 View 承担的责任多。因为前者通过 ViewModel 的设置绑定来更新状态,而后者只监听 Presenter 的事件但并不会对自己有什么更新。
2.可测试性 -- ViewModel 不知道关于 View 的任何事情,这允许我们可以轻易的测试 ViewModel。同时 View 也可以被测试,但是由于属于 UIKit 的范畴,对他们的测试通常会被忽略。
3.易用性 -- 在实际开发中必须把 View 中的事件指向 Presenter 并且手动的来更新 View,如果使用绑定的话,MVVM 代码量将会小的多。
4.MVC视图控制器太大且难以管理,这个模式提供了一个很好的代替MVC的方案,它保证了让视图控制器的轻量性。
5.双向绑定数据。
缺点:
3.数据绑定使得 Bug 很难被调试。你看到界面异常了,有可能是你 View 的代码有 Bug,也可能是 Model 的代码有问题。数据绑定使得一个位置的 Bug 被快速传递到别的位置,要定位原始出问题的地方就变得不那么容易了。
2.对于过大的项目,数据绑定需要花费更多的内存。
作者:小飞飞啊阿飞
链接:https://www.jianshu.com/p/6560505fa0f1
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2020-10-06 Android 穿山甲广告联盟接入
2020-10-06 Mac OS 下使用 afconvert 命令,处理音频格式转换
2020-10-06 IOS 监听锁屏