我无意中遇到了两个经典的编程问题之一。我正在编写一个 Cocoa 框架,它基本上是最常用的基础类类别中(大部分)有用方法的集合。我的问题是如何在我的类别中为所述类命名这些额外的方法?我应该使用前缀还是无前缀命名约定(例如 - (void)doSomething
与 - (void)myDoSomething
)?
在阅读 Cocoa 文档时我变得不确定:
Use prefixes when naming classes, protocols, functions, constants, and typedef structures. Do not use prefixes when naming methods; methods exist in a name space created by the class that defines them. Also, don’t use prefixes for naming the fields of a structure
并查看 Mike 在周五问答系列中的代码示例(例如,MARefCounting
中的方法名称在 building reference count 文章中具有前缀)。
最佳答案
我认为您引用的文档没有考虑您不拥有的类的类别。它只是想说,如果你定义了 MyClass
您也不需要将您的方法命名为 my_doThis
,因为它们没有任何东西可以碰撞。
在这种情况下,使用前缀可能是最安全的。如果您省略了前缀,并且 Apple 最终在未来版本中添加了相同的方法,那么您的类别实现将覆盖 Apple 的,这可能会导致意外行为。
更糟糕的是,有时您可能会替换内部定义的方法(它们并不总是以 _
开头),这可能会导致框架内的内部不一致,从而使问题更加难以调试。
关于cocoa - Cocoa 中命名类别方法的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7558736/