在Objectice-C或Ruby中,为什么我们不在前缀(使用我们的类前缀)我们的自定义类的类/实例方法来防止冲突,例如,如果Objective-C或Ruby稍后添加了一个具有相同名称的方法去超级班?
推理:
Objective-C良好做法是为您创建的类别添加前缀(使用您的类前缀)方法,以便将方法添加到您不拥有的类中。
例如:
@interface NSString (XYZAdditions)
+ (NSString)xyz_emptyString
{
return @"";
}
- (NSArray)xyz_words
{
// Split the string into words.
}
@end
答案 0 :(得分:2)
我宁愿我的代码具有可预测的,非warted的方法名称,而不是理论上的防弹,以防止未来可能永远不会发生的未知变化。感觉有点像YAGNI情况。
Rails 转储标准库,如果它们似乎可以毫不费力地将其拉下来,那么我所做的任何事情都会比较苍白,我不妨为我理想的方法名称和在问题发生时立即解决问题。
我只做了一点Objective-C,但是唯一的"命名空间"我已经看到将你的XYZClass前缀添加到类名的开头,因为这是一个真正的问题,因为类名更容易发生碰撞。