static bool TestAdapterPattern() { Console.WriteLine("TESTING THE ADAPTER DESIGN PATTERN: "); ITarget t = new SomeTarget(); t.Request(); //OUTPUTS //Request from SomeTarget ITarget t2 = new Adapter();//<- Adapts the incompatible object so it can be used as ITarget t2.Request(); //OUTPUTS //Request from Adaptee return(true); }
private static void StructuralPaterns() { #region Example of Adapter patern Console.WriteLine("Adaptor Pattern"); ITarget t = new SomeTarget(); t.Request(); ITarget t2 = new Adapter(); t2.Request(); #endregion #region Bridge Console.WriteLine("Bridge"); Abstraction abstraction = new DerivedAbstraction(); abstraction.Implementor = new ConcretImplementorA(); abstraction.Operation(); abstraction.Implementor = new ConcretImplementorB(); abstraction.Operation(); #endregion #region Facade Console.WriteLine("Facade"); Facade facade = new Facade(); facade.CallOperaionsUnified(); #endregion #region Decorator ConcretComponent component = new ConcretComponent(); ConcretDecoratorA decoratorA = new ConcretDecoratorA(component); ConcretDecoratorB decoratorB = new ConcretDecoratorB(decoratorA); component.Operation(); decoratorA.Operation(); decoratorB.Operation(); #endregion }