Код IT
← Каталог

Объектно-ориентированное программирование в Ruby — Мини-сниппет — композиция вместо наследования

Фрагмент из «Объектно-ориентированное программирование в Ruby»: Мини-сниппет — композиция вместо наследования.

Ruby main.rb
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