Esempio n. 1
0
        static void Main(string[] args)
        {
            Console.Write("Decorator Pattern\n");
            IComponent component = new Component();

            Display("1. Basic Component: ", component);
            Display("2. A-decorated: ", new DecoratorA(component));
            Display("3. B-decorated: ", new DecoratorB(component));
            Display("4. B-A-decorated: ", new DecoratorB(new DecoratorA(component)));
            var b = new DecoratorB(new Component());

            Display("5. A-B-decorated: ", new DecoratorA(b));
            Console.WriteLine(("\t\t\t" + b.addedState + b.AddedBehavior()));
            Console.ReadLine();
        }
Esempio n. 2
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Decorator Pattern\n");

            IComponent component = new Component();

            Client.Display("1. Basic component: ", component);
            IComponent component1 = new DecoratorA(component);

            Client.Display("2. A-decorated : ", component1);
            Client.Display("3. B-decorated : ", new DecoratorB(component));
            Client.Display("4. B-A-decorated : ", new DecoratorB(new DecoratorA(component)));
            // Explicit DecoratorB
            var b = new DecoratorB(new Component());

            Client.Display("5. A-B-decorated : ", new DecoratorA(b));
            // Invoking its added state and added behavior
            Console.WriteLine("\t\t\t" + b.addedState + b.AddedBehavior());
            Console.ReadLine();
        }