Und*_*ion 27 protocols objective-c
我正在努力使用Objective-C中的命名协议.例如:
我有一个名为Command的协议.我有一个实现Command的抽象类,它是我具体命令的基类.
我相信可以同时调用协议和基类'Command',但是如果我需要在实现中引用协议,这会引起导入冲突.我也明白,在Objective C中,使用前缀来表示协议是不好的形式.一些示例使用"ing"添加到最后,但在这种情况下没有任何意义.调用抽象类'CommandBase'似乎也是错误的.
那我该如何命名呢?
Stu*_*art 24
我建议在你的情况下,将协议和基类命名为同一个东西并不一定是坏的,因为你的类是协议的主要表达式(例如with NSObject).
来自Apple的Cocoa编码指南:代码命名基础知识:
一些协议将许多不相关的方法组合在一起(而不是创建几个单独的小协议).这些协议往往与作为协议主要表达的类相关联.在这些情况下,约定是为协议提供与类相同的名称.这种协议的一个例子是NSObject协议.此协议对可用于查询任何对象的方法进行分组,以查询其在类层次结构中的位置,使其调用特定方法,以及增加或减少其引用计数.因为NSObject类提供了这些方法的主要表达式,所以协议以类命名.
Max*_*eod 17
所有这些都在Apple的Cocoa编码指南中涵盖了代码命名基础知识部分.
作者说:
协议应根据它们对行为进行分组的方式命名:
大多数协议将与特定类别无关的相关方法分组.应该命名这种类型的协议,以便协议不会与类混淆.一个常见的惯例是使用动名词("... ing")形式:
NSLocking - 很好.
NSLock - 穷人(似乎是一个班级的名字).
一些协议将许多不相关的方法组合在一起(而不是创建几个单独的小协议).这些协议往往与作为协议主要表达的类相关联.在这些情况下,约定是为协议提供与类相同的名称.
这种协议的一个例子是NSObject协议.此协议对可用于查询任何对象的方法进行分组,以查询其在类层次结构中的位置,使其调用特定方法,以及增加或减少其引用计数.因为NSObject类提供了这些方法的主要表达式,所以协议以类命名.
| 归档时间: |
|
| 查看次数: |
13226 次 |
| 最近记录: |