在开发中,ViewController经常会变得过于沉重。有些业务逻辑也放进来ViewController里面。会造成ViewController太大,难以修改。
- 将tableView.dataSource分离出来。
- 创建一个遵循UITableViewDataSource的类A,然后再在AppDelegate位置将分离出来的类A和原来的TableViewController进行组装,使得对应上。
- dataSource内处理直接和模型数据打交道的环节。
- 将Cell的定制分离出来。
- 在初始化的时候我们做一个调用View层Cell定制函数的一个闭包,给dataSource。而dataSource调用Cell定制出最终样子的途径就是调用这个闭包。
- 要注意Cell的定制已经算是View层了,在MVC模式(cocoa MVC)中,View层不应该和Module层直接打交道,而应该通过Controller层来获取到。View层并不是用户交互的对象,用户交互的对象是Controller层。所以是Controller层接到Module层的修改或是用户的操作,然后通知View层的修改,这个TableView中就是由刚刚提到的闭包来告诉View层的。