module decorator.coffeewithsize.soy; import decorator.coffeewithsize.beverage; import decorator.coffeewithsize.condimentdecorator; class Soy : CondimerDecorator { private: Beverage beverage; public: this(Beverage beverage) { this.beverage = beverage; } override string getDescription() { return beverage.getDescription() ~ ", Soy"; } override double cost() { double cost = beverage.cost(); if (beverage.getSize() == Size.TALL) { cost += .10; } else if (beverage.getSize() == Size.GRANDE) { cost += .15; } else if (beverage.getSize() == Size.VENTI) { cost += .20; } return cost; } }