module decorator.coffee.app; import decorator.coffee.beverage; import decorator.coffee.espresso; import decorator.coffee.darkroast; import decorator.coffee.houseblend; import decorator.coffee.decaf; import decorator.coffee.mocha; import decorator.coffee.milk; import decorator.coffee.soy; import decorator.coffee.whip; import std.stdio : writeln; void print(Beverage beverage) { writeln(beverage.getDescription(), " $", beverage.cost()); } void main() { Beverage beverage = new Espresso(); print(beverage); Beverage beverage2 = new DarkRoast(); beverage2 = new Mocha(beverage2); beverage2 = new Mocha(beverage2); beverage2 = new Whip(beverage2); print(beverage2); Beverage beverage3 = new HouseBlend(); beverage3 = new Soy(beverage3); beverage3 = new Mocha(beverage3); beverage3 = new Whip(beverage3); print(beverage3); }