码迷,mamicode.com
首页 > 其他好文 > 详细

0521.如何拆分View Controller进而实现轻量级的View Controller[UIKit]

时间:2014-05-24 23:34:38      阅读:427      评论:0      收藏:0      [点我收藏+]

标签:objective-c   delegate   ios开发   uiview   uitableview   

参考文章来自objcio网站

 

为什么要编写轻量级的View Controller??

 

1、作为iOS项目中最大的文件,ViewControllers中的代码复用率几乎是最低的

2、重量级的View COntroller加大了测试的复杂度。

 

所以关注ViewController的瘦身,把业务逻辑、网络请求、Views的代码移到合适的地方,进而提高代码可读性、降低耦合、提高复用、降低测试难度极为重要

 

一、把DataSource和其他Protocols分离出来

 

 

比如uiTableView中的DataSource大多都是对数组做的一些操作,可以把数组操作相关的代码移到单独的类中。可以使用block或者delegate来设置一个cell。

 

二、把业务逻辑、网络请求逻辑移动到Model中

 

业务逻辑类的代码要放到Model对象中。但是对于不能轻易移动到Model对象中,但是和Model代码相关的,我们可以创建一个Store类

 

Store被称为服务层或者仓库,主要关心的是数据加载、缓存和设计数据栈

 

网络请求逻辑也要移动到Model层中,不要在ViewController中做网络请求的逻辑。你应该把网络请求封装到一个类中。这样你的ViewController就可以在之后通过回调函数来请求网络了。

 

三、把View代码移到View层

 

不要在ViewController中构建复杂的view层次结构。可以把views封装到UIView的子类中。对代码的重用和测试都带来很大的帮助。

 

补充

 

1、ViewController主要做的事情是与其他关联的ViewController、Model、View之间进行通信。

 

2、ViewController和Model对象之间的消息传递可以使用KVO、fetched results Controller

 

3、当一个ViewController需要把某个状态传递给其他多个ViewController时,可以使用代理模式处理。

0521.如何拆分View Controller进而实现轻量级的View Controller[UIKit],布布扣,bubuko.com

0521.如何拆分View Controller进而实现轻量级的View Controller[UIKit]

标签:objective-c   delegate   ios开发   uiview   uitableview   

原文地址:http://blog.csdn.net/paulery2012/article/details/26760333

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!