iOS 所谓的MVC 通常是指DataModel UIView UIViewController。
DataModel UIView分别代表M 和 V,这个没什么争议。
最有争议的是UIViewController代表 Controller。
很多的业务逻辑代码都丢到UIViewCotroller,造成UIViewController代码很臃肿,不好维护,不好测试。
从字面上来看,UIViewCotroller就是View的管理者,而不是MVC中的Controller,我们为了偷懒,什么代码都往UIViewController中写,这是不对的。
既然UIViewCotroller是管理View的,那Model是不是可以有一个Model Controller呢?
如图,Document就是Model Controller的一种。
但是我们常用的model不是Document, 而是服务器获取到的数据,或者本地存储的数据。
所以我们要设计一个基于网络的数据和本地数据的Model Controller。Model Controller有以下职责
1.读取数据,从网络或者本地读取。
2.存储数据,存在网络或者本地。
3.更新数据。
4.数据管理与解析。
5.与UIViewController交互
网友评论