我正在通过Gregory Brown
Ruby Best Practices的书.早期,他正在谈论从相关类的帮助方法重构一些功能,对模块的一些方法,然后模块扩展自身.
没有看到之前,一个快速的谷歌,发现扩展自己的模块让模块上定义的方法看到对方,这是有道理的.
现在,我的问题是你什么时候会这样做
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
是否可以使用它作为mixin?还是有其他原因我没看到?