Example #1
0
        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);
        }
Example #2
0
        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
        }