rubyでデザインパターン decoratorパターン

class Coffee

  #価格
  def getCost
  end

  #商品説明
  def getDescription
  end
end

class SimpleCoffee < Coffee
  def getCost
    10
  end

  def getDescription
    'Simple coffee'
  end
end

class MilkCoffee < Coffee
  def initialize(coffee)
    @coffee = coffee
  end

  def getCost
    @coffee.getCost + 2
  end

  def getDescription
    "#{@coffee.getDescription}にミルクを加えました。"
  end
end

simple_coffee = SimpleCoffee.new
milk_coffee = MilkCoffee.new(simple_coffee)
puts simple_coffee.getCost
puts milk_coffee.getCost

puts simple_coffee.getDescription
puts milk_coffee.getDescription

#こうやって出力されます
#10
#12
#Simple coffee
#Simple coffeeにミルクを加えました。

このように基本はSimpleCoffeeだけど、ときどき機能を拡張するみたいな時に使えるパターン