デザインパターンdecorator
decoratorパターンです
継承を利用せずに、委譲を利用する
同じinterfaceを持つインスタンスを保持する
多段の継承を利用するより変更に強い
class Icecream
def get_name; end
def how_sweet; end
endclass VanillaIcecream
def get_name
return "バニラアイスクリーム"
end
def how_sweet
return "抹茶味"
end
endclass CasheNutsToppingIcecream
def initialize(ice)
@ice = ice
end
def get_name
return "カシューナッツ" + @ice.get_name
end
def how_sweet
return @ice.how_sweet
end
endi = VanillaIcecream.new
c = CasheNutsToppingIcecream.new(i)
puts c.get_name
puts c.how_sweet