协议与分类的优化

一、协议

当协议有多个方法的时候,我们可以通过“位段”将方法的响应能力缓存起来,“位段”属于C语言特性,是一个结构体,我们可以吧结构体中某个字段所占用的二进制位个数设为特定的值。

struct  {

 int didReceiveData  :1;

int didReceiveError :1;

int didReceiveTrue  :1;

} _delegateFlages;

我们可以利用可以在delegate的set方法里面,用“位段”来缓存对应的方法响应能力,在每次调用delegate的相关方法之前,就不用检测委托对象是否能响应给定的代理方法了!在相关方法要调用很多次时,值得进行这种优化。

可以通过协议提供匿名对象,就是我们可以通过方法返回一个遵守一个协议的id对象,这样我们就可以以这个对象来进行操作,而不需要关心该对象是什么类型,这样就做到了解耦和,后期就算该对象变了也无需更改共用API和业务代码

二、分类

类中经常填满各种方法,而这些方法的代码全部堆在一个巨大的实现文件中,有时这么做是合理的,但是通过分类机制把类代码按逻辑划入几个分区中,这样会更好。

通过分类机制,可以把类代码分成很多个易于管理的小块,以便单独检视。

特别是可以将类的私有方法全部放到一个分类中,这个分类的方法一般只会在类和框架中使用,无需对外公布。

分类机制通常用于向无源码的既有类中新增功能,但是有个隐患就是分类添加的方法很容易覆盖原来的那一份实现代码,解决办法就是给相关名称添加一个前缀。

给第三方添加分类时候,不仅仅分类名字加前缀,方法名也要加前缀。

不要在分类中声明属性,正确做法是吧所有属性都定义在主接口中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,421评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 12,197评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,363评论 18 399
  • 2017年10月1日完稿,2017年11月3日整理 这些天心里一直堵着东西,无法言述,对,是恨!是怨!!怨老公...
    青可路香阅读 263评论 1 1
  • 我就知道我还是输了,没有输给时间,也没有输给宇宙,而是输给了你。 慢慢的,开始习惯,习惯没有唠叨的可能,也开始改变...
    戴恩米恩的月光阅读 251评论 0 0

友情链接更多精彩内容