static void Main(string[] args)
        {
            Client client = new Client();

            Abstraction abstraction;

            abstraction = new Abstraction(new ConcreteImplementationA());
            client.ClientCode(abstraction);

            Console.WriteLine();

            abstraction = new ExtendedAbstraction(new ConcreteImplementationB());
            client.ClientCode(abstraction);
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            var abstraction1 = new Abstraction(new ConcreteImplementationA());
            var client1      = new Client(abstraction1);

            client1.DoWork();

            Console.WriteLine();

            var abstraction2 = new ExtendedAbstraction(new ConcreteImplementationB());
            var client2      = new Client(abstraction2);

            client2.DoWork();
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            Client client = new Client();

            Abstraction abstraction;

            //// The client code should be able to work with any pre-configured abstraction-implementation combination.
            abstraction = new Abstraction(new ConcreteImplementationA());
            client.ClientCode(abstraction);

            Console.WriteLine();

            abstraction = new ExtendedAbstraction(new ConcreteImplementationB());
            client.ClientCode(abstraction);
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            Client client = new Client();

            Abstraction abstraction;

            // Клиентский код должен работать с любой предварительно
            // сконфигурированной комбинацией абстракции и реализации.
            abstraction = new Abstraction(new ConcreteImplementationA());
            client.ClientCode(abstraction);

            Console.WriteLine();

            abstraction = new ExtendedAbstraction(new ConcreteImplementationB());
            client.ClientCode(abstraction);
        }