做程序设计,慢慢的发现一个问题,当我设计一个viewController的时候,往往会存在两种刷新的情况,1.viewController第一次加载的时候数据需要刷新,2.主动或被动刷新已经存在的数据的时候。
如果是1,那么就可能需要开放一个API 给外部调用,而二显然是写在类里面好...虽然可以写相同的方法,让内部外部同时调用,但是显然不干净,怎么办呢?其实为了低耦合高内聚的基本设计模式思想,应该果断只写程序内部的逻辑!因为我们应该把相关的逻辑尽量封闭在viewController内部,那么1的情况怎么办,很简单,几乎多有的viewController绑定的UI在第一次加载是都需要做数据刷新,那么情况就很简单了,在viewDidLoad里面进行首次刷新就OK,如果这个时候用于数据刷新的句柄not ready怎么办?这就是程序架构设计的问题了,要让viewController加载前就能拿到用于刷新的全部句柄,这样viewController就可以在初次加载时内部刷新。那么会有做不到的情况么比如说我viewController展示的是一个用户的明细信息,加载viewController的时候用户ID可能还没有load出来呢?呵呵,那就得考虑了,为什么id都没有的情况下要先show detail page?这个时候是不是一个大大的loading就够了呢?所以设计模式是指导思想,当自己的架构需求和指导思想相违背的时候就要退一步看看设计的架构是不是合理,因为,设计模式是千锤百炼的萃取,前人花了那么多时间积累的经验教训一定有它的道理,碰到问题多从架构上分析往往能得到更好的结果