示例#1
0
        static void Main(string[] args)
        {
            ConcreteVisitor  vistor   = new ConcreteVisitor();
            ConcreteElementA elementA = new ConcreteElementA("Data in element A.");
            ConcreteElementB elementB = new ConcreteElementB("Data in element B.");


            Console.WriteLine(vistor.Vist(elementA));
            Console.WriteLine();
            Console.WriteLine(vistor.Vist(elementB));
        }
示例#2
0
        static void Main(string[] args)
        {
            Visitor v1 = new ConcreteVisitor1();
            Visitor v2 = new ConcreteVisitor2();
            Element e1 = new ConcreteElementA();
            Element e2 = new ConcreteElementB();

            e1.Accept(v1);
            e2.Accept(v1);
            Console.WriteLine("————————————");
            e1.Accept(v2);
            e2.Accept(v2);
            Console.ReadLine();
        }
示例#3
0
 public override void Visit(ConcreteElementA element)
 {
     Console.WriteLine("VisitorB visited ElementA : {0}", element.Name);
 }
示例#4
0
 public abstract void Visit(ConcreteElementA element);
示例#5
0
 public abstract void VisitConcreteElementA(ConcreteElementA concreteElementA);
示例#6
0
 public override void VisitConcreteElementA(ConcreteElementA concreteElementA)
 {
     Console.WriteLine("{0}被{1}访问", concreteElementA.GetType().Name, this.GetType().Name);
 }
示例#7
0
 public abstract void visitConcreteElementA(ConcreteElementA cea);
示例#8
0
 public override void VisitConcreteElementA(ConcreteElementA concreteElementA)
 {
     Console.WriteLine("ConcreteVisitor2: {0} visitado por: {1}", concreteElementA.GetType().Name, this.GetType().Name);
 }
 public override void VisitConcreteElementA(ConcreteElementA concreteElementA)
 {
     Console.WriteLine($"{concreteElementA.GetType().Name}被{this.GetType().Name}存取");
 }
示例#10
0
 public override void Visit(ConcreteElementA element)
 {
     Console.WriteLine("VisitorB visited ElementA : {0}", element.Name);
 }
示例#11
0
 public abstract void Visit(ConcreteElementA element);
示例#12
0
 public void Visit(ConcreteElementA element)
 {
     Console.WriteLine("Visitor 2 is visiting {0}", element.GetType().Name);
 }
示例#13
0
 public abstract void VisitConcreteElementA(
   ConcreteElementA concreteElementA);
 public override void VisitConcreteElementA(ConcreteElementA concreteElement)
 {
     Console.WriteLine("{0} 被 {1} 访问", concreteElement.GetType().Name, this.GetType().Name);
 }
示例#15
0
 public override void VisitConcreteElementA(ConcreteElementA elementA)
 {
     elementA.OperationA();
 }
示例#16
0
 public override void VisitConcreteElementA(ConcreteElementA concreteElementA)
 {
     Console.WriteLine($"{concreteElementA.GetType().Name} visitado por {GetType().Name}");
 }
 public override void visitConcreteElementA(ConcreteElementA cea)
 {
     Console.WriteLine("the {0} is visiting {1}", this.GetType().Name, cea.GetType().Name);
 }
示例#18
0
 public void Visit(ConcreteElementA element)
 {
     Console.WriteLine("Visitor 2 is visiting {0}", element.GetType().Name);
 }
示例#19
0
 public void VisitorConcreteElementA(ConcreteElementA elementA)
 {
     elementA.OperationA();
     Console.WriteLine("A元素其他操作2");
 }
 // Methods
 override public void VisitConcreteElementA(
     ConcreteElementA concreteElementA)
 {
     Console.WriteLine("{0} visited by {1}",
                       concreteElementA, this);
 }
示例#21
0
 public override void VisitConcreteElementA(
     ConcreteElementA concreteElementA)
 {
     Console.WriteLine("{0} visited by {1}",
                       concreteElementA.GetType().Name, this.GetType().Name);
 }
示例#22
0
 public string Vist(ConcreteElementA element)
 {
     Console.WriteLine("Visiting With ElementA: " + element.ElementAProp);
     return(element.ElementAProp + " + The cool new data added by ConcreteVisitor.");
 }