iOS怎样打造轻量级Controller( 二 )


■网友
分层,横着2刀,分成MVC,C层会越来越臃肿,那就再补2刀,分层service、DAO层等等业务逻辑统统放在service中、持久化缓存放在DAO中MVVM也不错,道理都是一样的,思想差别较大,响应式编程,学习成本略高,并且坑无数TableView需要封装,封装私有TableController,至少可以解决8成问题,数据驱动界面,实现所有tableView的dataSource和delegate方法,例如数据是XXXTableItem,实现一个XXXTableItem对应 XXXTableCell,TableController中把需要的方法都实现了,XXXTableCell是你所需要的UI,而XXXTableItem和Model所有的逻辑都在service中实现,或者ViewModel层中实现。另外如下拉刷上拉加载更多,统统封装成子类,简单的功能ViewController里没几行代码代码?这里说不清楚,我写个table封装的开源项目吧,放在github上
■网友
Lighter View Controllers 这里有介绍当然,还有中文版:更轻量的 View Controllers
■网友
MVVM
■网友
分离uitableview 很简单,分离uitableview的delegate 和 datasource(逻辑部分) 可以新建一个tableDDS Object 继承 NSObject 来处理tableview的逻辑部分。但这样做主要是在同一个tableview的逻辑可以在很多地方重用的情况。不单单是为了减轻controller里的代码量。viewcontroller 因为要包含逻辑代码所以”重“,是ios开发至今都在讨论的问题。(如果题主有兴趣研究)最新的方法是用mvvm(model view view model)取代mvc ,目前流行的reactivecocoa 就是这个思路。特点是用signal 来处理一切的响应,而基本iOS所有事件都可以看成一种signal。具体见matt大神blog ReactiveCocoa
■网友
抽出model 数据由model 管理 datasource 和 delegate 只做从model中拿数据的工作 这样一个controller里边其实也没多少代码的反正我的理解就是controller 里边不做具体的业务逻辑 只负责指挥各个部分干活儿


推荐阅读