Wenn Sie ein Modul verwenden, bedeutet das, dass Sie alle Methoden in Ihre Klasse aufnehmen. Wenn Sie extend
einer Klasse mit einem Modul, bedeutet dies, dass Sie die Methoden des Moduls als Klasse Methoden. Wenn Sie include
einer Klasse mit einem Modul, bedeutet dies, dass Sie die Methoden des Moduls als Instanz Methoden.
EX:
module A
def say
puts "this is module A"
end
end
class B
include A
end
class C
extend A
end
B.say
=> undefinierte Methode 'say' für B:Class
B.new.say
=> dies ist Modul A
C.say
=> dies ist Modul A
C.new.say
=> undefinierte Methode 'say' für C:Class