Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }