Ich habe nur meinen Kopf um Ruby Metaprogrammierung. Die Mixin/Module schaffen es immer wieder, mich zu verwirren.Was ist der Unterschied zwischen Einschließen und Erweitern in Ruby?
- umfassen: Mischungen in spezifizierten Modul Methoden wie Instanzmethoden in der Zielklasse
- erstrecken: Mischungen in spezifizierten Modul Methoden als Klassenmethoden in der Zielklasse
Also ist der Hauptunterschied gerade das oder ist ein größerer Drache lauern? z.B.
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!"
Überprüfen Sie diesen Link auch: http://juixe.com/techknow/index.php/2006/06/15/mixins-in-ruby/ – Donato