iOS 使用category将复杂的类拆分
来源:互联网 发布:淘宝店铺出售法律风险 编辑:程序博客网 时间:2024/06/03 22:51
在开发过程中,我们应该尽量保证代码的整洁性,方法尽量的简短,一个方法只做一件事情,而类也不应该过于复杂。很多时候,我们会一直往一个类里面添加代码,最终,这个类可能成为一个“庞然大物”。在iOS开发中,我们可以使用category将类进行拆分。
如下图所示,我要实现一个做题功能,上方矩形框是一个工具栏,为答题提供一些辅助功能,下方矩形框用来显示题目和作答。
我为这个类命名为PracticeVC,自己画了了类图(UML都是我自己瞎琢磨,也不知道这样画对不对)。
它包含一个AnswerTopView和一个UIScrollView,UIScrollView又包含一堆东西。
进入PracticeVC,以后,我需要:
1.请求题目数据,解析
2.设置AnswerTopView的点击事件
3.设置UIScrollView(显示题目、切换题目、设置答题卡)
4.提交用户作答数据。
虽然,我已经封装了两个类AnswerTopView和DisplayArea,在PracticeVC中只需要实现代理方法,指明点击工具栏上的按钮要做什么,初始化DisplayArea,AnswerCardView。但我仍然感觉非常的臃肿,这个类很长,好几百行。我有强迫症,我要拆分这个类。
iOS中category使用的比较多,我们常常会实现各种XX+Helper,非常好用。category可以为类添加方法(可能会覆盖类原有方法)和属性(有些书上认为只有在匿名category中添加属性才是合适的,其他的category不应该添加属性)。我们可以借助这一特性来拆分类,将其拆分到不同的category中,查看系统的类的头文件,基本都使用大量的category,相信原因中肯定有一条是避免类太复杂。
为此,我将请求题目和提交用户作答数据拆成一个类目PracticeVC+PVCServer,将上面的AnswerTopView的设置管理拆成另外一个类目PracticeVC+PVCTopView。我将需要用到的属性,都在PracticeVC.h中声明,类category中只有方法。这样拆分以后,PracticeVC有180行,PVCTopView有80行,PVCServer有100行。如果功能发生改变,我们只需要修改相应功能所在的文件就可以了。这样拆分以后,对于继承,也不会有任何影响,在PracticeVC中import这两个category,子类也就有了这些方法。
- iOS 使用category将复杂的类拆分
- ios category类别的使用
- ios category类别的使用
- IOS分类(Category)的使用
- iOS Category的简单使用
- IOS开发之----Category的使用
- IOS开发之----Category的使用
- IOS开发之----Category的使用
- IOS 学习笔记13 Category的使用
- 【iOS】Objective-C之Category的使用
- iOS之类别(category)的使用
- iOS开发:Category的具体使用详解
- 将复杂的大任务拆分成多个简单的小任务进行计算
- ios-基础之【11】-类的category
- ios的category
- ios的category
- iOS Category的正确理解
- 【worktile开发小记】复杂RecyclerView的拆分
- hdu 1575 try a 矩阵快速幂
- BadParcelableException:Parcelable protocol requires a Parcelable 错误
- 九度OJ 题目1031:xxx定律
- session与cookie的区别
- 图的深度遍历
- iOS 使用category将复杂的类拆分
- CodeForces #Pi D.One-Dimensional Battle Ships
- 九大排序算法总结
- GDOI模拟 20150806
- 数据离散化
- 最大二分匹配hdu5093
- HDoj 4496 D-City(并查集)
- 1.设计模式概述
- 屏保