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だけど、ときどき機能を拡張するみたいな時に使えるパターン