static void Main(string[] args) { //Decorator Design Pattern ==> In Decorator we can mixmatch the functionalities which are to be run on a particular Data IPizza pizza = new Pizza(); IPizza CheeseDecorator = new ChesseDecorator(pizza); IPizza TomatoDecorator = new TomatoDecorator(CheeseDecorator); IPizza OnionDecorator = new OnionDecorator(TomatoDecorator); Console.WriteLine(Cheesedecorator.GetPizzaType()); Console.ReadLine(); }
static void Main(string[] args) { Pizza largePizza = new LargePizza(); largePizza = new ChesseDecorator(largePizza); largePizza = new HamDecorator(largePizza); Console.WriteLine(largePizza.GetDescription()); Console.WriteLine("{0:C2}", largePizza.CalcullateCost()); Console.ReadLine(); }
static void Main(string[] args) { /* * allow us to attach features in run time * we can decore an object to extend it usage * * 1 base interface * 2 concrete class * 3 base decortor class * 4 derived decorator class * */ IPizza pizza = new Pizza(); IPizza chesseDec = new ChesseDecorator(pizza); IPizza tomatoDec = new TomatoDecorator(chesseDec); IPizza onionDec = new OnionDecorator(tomatoDec); Console.WriteLine(onionDec.GetPizzaType()); Console.WriteLine("Hello decorator!"); Console.ReadLine(); }