【问题标题】:Why not namespace custom class/instance methods?为什么不命名空间自定义类/实例方法?
【发布时间】:2014-06-20 13:41:24
【问题描述】:

在 Objectice-C 或 Ruby 中,我们为什么不为自定义类的类/实例方法添加前缀(加上我们的类前缀)以防止冲突,例如,如果 Objective-C 或 Ruby 稍后添加同名的方法到超级班?

推理:

Objective-C 的一个好的做法是为您创建的类别的方法添加前缀(使用您的类前缀),以便将方法添加到您不拥有的类中。

例如:

@interface NSString (XYZAdditions)

+ (NSString)xyz_emptyString
{
    return @"";
}

- (NSArray)xyz_words
{
    // Split the string into words.
}

@end

【问题讨论】:

    标签: objective-c ruby methods overriding


    【解决方案1】:

    我宁愿我的代码具有可预测的、无缺陷的方法名称,而不是理论上可以防止某些可能永远不会发生的未知未来更改。感觉有点像YAGNI 的情况。

    Rails 转储标准库,如果他们似乎可以毫不费力地完成它,那么相比之下我所做的任何事情都会相形见绌,我不妨为我理想的方法名称和立即解决问题。

    我只做了一点 Objective-C,但我见过的唯一“命名空间”是将 XYZClass 前缀添加到类名的开头,因为这是一个真正的问题,因为类名更有可能发生冲突.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      • 2013-08-31
      • 2014-09-04
      • 2013-05-17
      • 2014-07-21
      • 2021-01-10
      • 1970-01-01
      相关资源
      最近更新 更多