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