我们想让实例方法同时为类方法,那么可以使用extend self,这个对于普通的类
可能没有什么用。但是对于module来说还是很有用的,因为module不可以实例化,
module的实例方法通过自身就无法单元测试,所以通过extend self可以作为类方法暴露
来测试了:
module M
extend self
def greeting
puts "hi"
end
end
如果没有extend self,我们就无法使用M.greeting,
现在我们可以调用M.greeting了。
BTW:
module_
function可以把module一个实例方法变成私有的,并复制一份放到
其metaclass中。