這間共享的方法是我的嘗試:如何紅寶石模塊
module A
def self.method1; "method1"; end
def method2; "method2"; end
end
module B; include A; end
B.method1 # => error
B.method2 # => error
B::method1 # => error
B::method2 # => error
我想避免複製和粘貼兩個模塊之間的等效代碼。我在這裏使用模塊而不是類的原因是因爲我不需要每個模塊的多個實例,因爲它們只是保存常量(此時爲其他模塊)。
解決此問題的最佳方法是什麼?
如果您只想要此代碼的一個實例,爲什麼不使用單例? –
主要是因爲我不知道該解決方案的優缺點。有些人甚至說他們是邪惡的,而另一些人似乎認爲他們是好的。你怎麼看? – benekastah
正確使用它們可能會有所幫助,但我不確定您的使用情況,所以我無法確定。 –