對於名稱空間而不是模塊使用類是否有效和/或可接受?也許這只是一個意見問題,但我認爲有人可能有這方面的經驗,可以肯定地說,不管這是否是一種公認的做法。帶父類的Ruby子類命名空間
採取以下類,例如:
class Parent
end
class Parent::Child1 < Parent
end
class Parent::Child2 < Parent
end
我知道上面的代碼工作,但它似乎不可思議,而不是使用的命名空間的模塊類。我想將父類名稱添加到子類的原因是我計劃擁有很多子類,並希望避免名稱衝突。例如:
class Priority
end
class Priority::Low < Priority
end
class Temperature
end
class Temperature::Low < Priority
end
的替代品,這將是不使用的命名空間,只是用父名作爲子類名稱的一部分:
class PriorityLow < Priority
end
是否有使用Ruby命名空間的最佳做法?
更新:
@sawa下面問一些例子。這是我創建的一個叫做classy_enum的Gem,它允許用戶定義屬於Enum類型成員的類。查看example usage section瞭解更多背景。我正在清理代碼庫,發現我的建議命名方案可以改進。因此,而不是使用PriorityLow
,你可以使用Priority::Low
(或者是很有道理的,但我傾向於後者)
也許,如果您顯示要包含的方法的示例,那可能會使問題更清晰。答案可能取決於此。 – sawa 2012-07-15 07:08:02
@sawa我用我的用例更新了這個問題 – 2012-07-15 10:18:29