15.协议和分类

1、通过委托与数据源协议进行对象间通信

委托模式为对象提供了一套接口,使其可由此将相关事件告知其他对象。
将委托对象应该支持的接口定义成协议,把协议中可能要处理的时间定义成方法。
当某一对象要从另一个对象获取数据时,可以使用委托代理模式。这种情况下,该模式也成为“数据源协议”。
若有必要,可实现含有“位段“的结构体,将委托对象是否能响应相关协议方法这一信息缓存至其中。

2、把类的实现代码分散于便于管理的数个分类中

使用分类机制把类的实现代码划分成易于管理的小块
将应该视为私有的方法归入到名为Private的分类中,以隐藏细节

3、总是为第三方类的分类名称加前缀

向第三方类中添加分类时,总应该给其名称加上你专用的前缀
向第三方类中添加分类时,总应该给其中的方法名加上你专用的前缀

4、不要再分类中声明属性

分类的目标在于扩展类的功能,而非数据封装。把数据封装所用的全部属性定义在主接口。
在“class—continuation分类”之外的其他分类中可以定义存取方法,但不要定义属性。

5、使用“class-continuation分类”隐藏实现细节

通过“class-continuation分类”向类中新增实例变量。
如果某属性在主接口声明为只读,而类的内部又要设置该属性,那么在“class-continuation分类“声明为可读写。
把私有方法的原型声明在“class-continuation分类“里面
如果使用不为人知的协议,则可于“class-continuation分类“中声明。

你可能感兴趣的:(15.协议和分类)