前言:大体梳理一遍请看
一.先看MVC

- view只负责展示数据,例如UILable、UITableViewCell等
- controller负责协调view和model
- model:现在很多app的model只用来存储数据(数据存储),这是不合理的.根据Apple的文档,model包括数据和操作数据的业务逻辑(数据存储+数据操作).所以应该把数据获取、数据加工和数据存储都放到这里来.
二. MVVM

- 和MVC差不多,ViewModel做了C的很多工作
三.总结
- MVVM是在MVC的基础上,把胖model分离成model和viewModel.
- MVC和MVVM都是单向通讯.(双向绑定?自动更新?)
- MVVM增加了代码量,但是解决了重量级试图控制器的问题,减轻了Controller的负担.
四.解疑答惑
-
controller自带的view是什么鬼?
答:controller自带的view其实是一个viewContainer(容器),并不是我们平时使用的UIView.所以可以理解为controller里面并没有正儿八经的view.
点击这里参考 -
cell.model = self.modelArr[indexPath.index]
我们平时这样用view直接引用model好不好?
答:不好这样的话model和cell就有了耦合.我们尽量把它们拆分开,粒度越细越好.以前大家写的都是不合理的.
网友评论