思路:
controller里面就只应该存放这些不能复用的代码,这些代码
1.初始化时,构造相应的view和model.
2.监听model层的事件,将model层的数据传递到view.
3.监听view层的事件,并且将view层的事件转发到model成.
controller只有以上这些代码它的逻辑就非常简单了,而且非常短.
controller进一步的解决方案
但是,我们却很难做到这一点,因为还是有很多逻辑我们不知道写在哪里,于是就都写到了 Controller 中了,那我们接下来就看看其它逻辑应该写在哪里。
1.将UITableView的DataSource分离到另外一个类中.
2.将数据获取和转换的逻辑分离到另外一个类中
3.将拼装控件的逻辑分离到另外一个类中
具体包括一下几种解决方案:
1.将网络请求抽象到单独的类中
2.将界面的拼装抽象到专门的类中
3.构造 ViewModel
这样抽象之后,View 只接受 ViewModel,而 Controller 只需要传递 ViewModel 这么一行代码。而另外构造 ViewModel 的过程,我们就可以移动到另外的类中了。
4.专门构造存储类