예제 #1
0
        public override void VisitElementA(ElementA elementA)
        {
            // Код который мог быть размещен в классе ElementA,
            // расширяет собой класс ElementA.
            elementA.SomeState = "State A";
            Console.WriteLine(elementA.SomeState);

            // Работа с разнородным интерфейсом.
            elementA.OperationA();
        }
예제 #2
0
        static void Main()
        {
            ElementA elementA = new ElementA();
            ElementB elementB = new ElementB();

            elementA.VisitConcreteElementA();
            elementB.VisitConcreteElementB();

            // Задержка.
            Console.ReadKey();
        }
예제 #3
0
 public abstract void VisitElementA(ElementA el);
예제 #4
0
 public override void VisitElementA(ElementA el)
 {
     Console.WriteLine("{0} visited by {1}", el.GetType().Name, this.GetType().Name);
 }
예제 #5
0
 public abstract void VisitElementA(ElementA elementA);
예제 #6
0
 public static void VisitConcreteElementA(this ElementA element)
 {
     element.OperationA();
 }
예제 #7
0
 public override void VisitElementA(ElementA el)
 {
     Console.WriteLine("{0} visited by {1}", el.GetType().Name, this.GetType().Name);
 }