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(); }
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(); }