我正在通过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?还是有其他原因我没看到?