The 'Abstraction' class
Example #1
0
        static void Main(string[] args)
        {
            Abstraction ab = new Abstraction();

            ab.SetImplementor(new ConcreteImplementA());
            ab.Operation();

            ab.SetImplementor(new ConcreteImplementB());
            ab.Operation();

            Console.Read();
        }
Example #2
0
 // За исключением этапа инициализации, когда объект Абстракции
 // связывается с определённым объектом Реализации, клиентский код должен
 // зависеть только от класса Абстракции. Таким образом, клиентский код
 // может поддерживать любую комбинацию абстракции и реализации.
 public void ClientCode(Abstraction abstraction)
 {
     Console.Write(abstraction.Operation());
 }