← Каталог
Объектно-ориентированное программирование в Ruby — Мини-сниппет — композиция вместо наследования
Фрагмент из «Объектно-ориентированное программирование в Ruby»: Мини-сниппет — композиция вместо наследования.
class Engine
def start
"Двигатель запущен"
end
end
class Car
def initialize(engine = Engine.new)
@engine = engine
end
def drive
"#{@engine.start}. Машина едет"
end
end
puts Car.new.drive class Engine
def start
"Двигатель запущен"
end
end
class Car
def initialize(engine = Engine.new)
@engine = engine
end
def drive
"#{@engine.start}. Машина едет"
end
end
puts Car.new.drive