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

怎样拆分View Controller进而实现轻量级的View Controller[UIKit]

时间:2019-05-02 19:02:17      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:cio   toc   难度   lease   文章   class   styles   代理模式   代码   

參考文章来自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时。能够使用代理模式处理。

怎样拆分View Controller进而实现轻量级的View Controller[UIKit]

标签:cio   toc   难度   lease   文章   class   styles   代理模式   代码   

原文地址:https://www.cnblogs.com/ldxsuanfa/p/10802863.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
分享档案
周排行
mamicode.com排行更多图片
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!