Я про вот такие штуки:
module Debug
def who_am_i?
"#{self.class.name} (\##{self.object_id}): #{self.to_s}"
end
end
class Phonograph
include Debug
def initialize(name)
@name = name
end
end
class EightTrack
include Debug
def initialize(name)
@name = name
end
end
ph=Phonograph.new("one")
et=EightTrack.new("two")
puts ph.who_am_i?
puts et.who_am_i?
А когда они бывают реально полезны? Ведь того самого я могу достичь
созданием базового класса и наследованием от него.
Единственное, что приходит в голову, — множественное наследование.
Posted via RSDN NNTP Server 2.1 beta