static void Main(string[] args) { Beverage bev = new AfricanBlend(); Console.WriteLine( String.Format("{0} - ${1}", bev.GetDescription(), bev.GetCost())); bev = new HouseBlend(); Console.WriteLine( String.Format("{0} - ${1}", bev.GetDescription(), bev.GetCost())); bev = new Cream(bev); Console.WriteLine( String.Format("{0} - ${1}", bev.GetDescription(), bev.GetCost())); bev = new Cream(bev); Console.WriteLine( String.Format("{0} - ${1}", bev.GetDescription(), bev.GetCost())); // We'll decorate an interface rather than an abstract base class IPizza pizza = new LargePizza(); Console.WriteLine( String.Format("{0} - ${1}", pizza.GetDescription(), pizza.CalculateCost())); IPizza cheese = new Cheese(pizza); Console.WriteLine( String.Format("{0} - ${1}", cheese.GetDescription(), cheese.CalculateCost())); IPizza extra = new Cheese(cheese); Console.WriteLine( String.Format("{0} - ${1}", extra.GetDescription(), extra.CalculateCost())); IPizza sausage = new Sausage(extra); Console.WriteLine( String.Format("{0} - ${1}", sausage.GetDescription(), sausage.CalculateCost())); Console.ReadLine(); }
public static void Main() { Sandwich veggie = new VeggieSandwich(); Console.WriteLine(veggie.GetPrice()); Console.WriteLine(veggie.GetDescription()); var veggieCheese = new Cheese(veggie); Console.WriteLine(veggieCheese.GetPrice()); Console.WriteLine(veggieCheese.GetDescription()); var veggieCheeseCorn = new Corn(veggieCheese); Console.WriteLine(veggieCheeseCorn.GetPrice()); Console.WriteLine(veggieCheeseCorn.GetDescription()); var tuna = new Corn(new Olives(new TunaSandwich())); Console.WriteLine(tuna.GetPrice()); Console.WriteLine(tuna.GetDescription()); }