Rubyメタプログラミングに頭を悩ませています。ミックスイン/モジュールは常に私を混乱させます。
- 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!"