只是让我了解Ruby元编程。mixin /模块总是设法使我感到困惑。
- include:将指定的模块方法混合为目标类中的实例方法
- 扩展:将指定的模块方法作为目标类中的类方法进行混合
那么主要的区别是这样还是更大的龙潜伏了? 例如
module ReusableModule
def module_method
puts "Module Method: Hi there!"
end
end
class ClassThatIncludes
include ReusableModule
end
class ClassThatExtends
extend ReusableModule
end
puts "Include"
ClassThatIncludes.new.module_method # "Module Method: Hi there!"
puts "Extend"
ClassThatExtends.module_method # "Module Method: Hi there!"