我目前正在通過格雷戈里布朗Ruby Best Practices書。早些時候,他正在談論重構相關類的輔助方法的某些功能,以及模塊上的某些方法,然後使用模塊extend self
。何時使用模塊以及何時使用某個類
在沒有看到之前,在google快速瀏覽之後,發現模塊上的extend self
讓模塊上定義的方法可以互相看到,這很有道理。
現在,我的問題是,當你會做這樣的事情
module StyleParser
extend self
def process(text)
...
end
def style_tag?(text)
...
end
end
,然後引用它在測試中與
@parser = Prawn::Document::Text::StyleParser
,而不是這樣呢?
class StyleParser
def self.process(text)
...
end
def self.style_tag?(text)
...
end
end
它是這樣,你可以使用它作爲一個混合?或者我還沒有看到其他原因?
正是我在找的:-) – 2010-04-20 00:30:07