问题分析: ViewController的主要功能代码大致体现为以下三个部分
1,装载数据;
2,UI显示逻辑(根据对应数据做不同UI效果等);
3,事件处理(交互相关)
解决方案: 1,单独封装View的创建相关代码,不要直接在controller里创建视图;
2,尽量让Controller的功能保持单一的数据装载操作;
3,封装各部分功能模块,在ViewController里做调用操作,而不是一堆逻辑相关。
详述:ViewController过重说白了还是封装问题,先了解清楚问题的来源,才能从根本上解决问题;面向对象是对对象行为和属性的封装,但关于委托则是另一种解释(即对象的行为需要其它对象的行为结果来实现)。这也是我们说的面向对象编程即面向接口的一种理解,那么接口中的任意一个模块如果“不负责任”,那么它对应的责任就要其它模块承担,所以有“过重”这个现象。另一个过重点就是:服务器端不做数据处理,给客户端一批抽象数据,我们都知道服务器的强大业务数据处理能力,如果给客户端一批抽象数据的话,势必造成客户端要加一层数据处理逻辑,有经验的同学还知道单独分层封装,没经验的同学就可想而知了,表面上看是一个小问题,但长久积累势必引发重构的工作,甚至要撤了重写的后果。