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)); }
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(); }
public override void Visit(ConcreteElementA element) { Console.WriteLine("VisitorB visited ElementA : {0}", element.Name); }
public abstract void Visit(ConcreteElementA element);
public abstract void VisitConcreteElementA(ConcreteElementA concreteElementA);
public override void VisitConcreteElementA(ConcreteElementA concreteElementA) { Console.WriteLine("{0}被{1}访问", concreteElementA.GetType().Name, this.GetType().Name); }
public abstract void visitConcreteElementA(ConcreteElementA cea);
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}存取"); }
public void Visit(ConcreteElementA element) { Console.WriteLine("Visitor 2 is visiting {0}", element.GetType().Name); }
public abstract void VisitConcreteElementA( ConcreteElementA concreteElementA);
public override void VisitConcreteElementA(ConcreteElementA concreteElement) { Console.WriteLine("{0} 被 {1} 访问", concreteElement.GetType().Name, this.GetType().Name); }
public override void VisitConcreteElementA(ConcreteElementA elementA) { elementA.OperationA(); }
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); }
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); }
public override void VisitConcreteElementA( ConcreteElementA concreteElementA) { Console.WriteLine("{0} visited by {1}", concreteElementA.GetType().Name, this.GetType().Name); }
public string Vist(ConcreteElementA element) { Console.WriteLine("Visiting With ElementA: " + element.ElementAProp); return(element.ElementAProp + " + The cool new data added by ConcreteVisitor."); }