美文网首页
协议与分类的优化

协议与分类的优化

作者: 海浪萌物 | 来源:发表于2017-05-11 20:46 被阅读1次

一、协议

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

struct  {

 int didReceiveData  :1;

int didReceiveError :1;

int didReceiveTrue  :1;

} _delegateFlages;

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

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

二、分类

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

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

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

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

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

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

相关文章

  • 协议与分类的优化

    一、协议 当协议有多个方法的时候,我们可以通过“位段”将方法的响应能力缓存起来,“位段”属于C语言特性,是一个结构...

  • 前端优化(Font-end Optimization)

    一、性能优化原则及分类 二、图片处理 三、雅虎军规 四、代码优化 html 代码优化 避免空的图片src 协议自适...

  • Effective Object-C 52:23-28

    四、协议与分类 Object-C 语言特性: “协议” (protocol)、“分类”(Category) 23....

  • 【2019】Scry 9月项目进度月报

    一、SCRY协议层开发 1、IndexedDB数据库结构优化迭代 2、协议层搭建分类信息One class cla...

  • 协议与分类

    协议(protocol): Objective-C 语言有一项特性叫做"协议",它与Java的"接口"(inte...

  • iOS编写高质量代码(四)

    协议 与 分类 协议(protocol):OC中的协议与Java里的接口(interface)类似,OC不支持多继...

  • EffectiveObjective-C2.0 笔记 - 第四部

    4 协议与分类 4.1 通过委托与数据源协议进行对象间通信 1. 协议(protocol)类似 java 的接口(...

  • 第四章 协议与分类

    第四章 协议与分类 Objective-C的“协议”(protocol)与java的“接口”类似。Objectiv...

  • iOS 协议与分类

    Effective Objective C 2.0:编写高质量iOS与OS X代码的52个有效方法 第 23 条:...

  • 第 4 章 协议与分类

    第 4 章 协议与分类第 23 条:通过委托与数据源协议进行对象间通信@optionalif ([_deleg...

网友评论

      本文标题:协议与分类的优化

      本文链接:https://www.haomeiwen.com/subject/bicotxtx.html