Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            //创建被访问的元素
            ConcreteElementA ce1 = new ConcreteElementA("元素A");
            ConCreteElementB ce2 = new ConCreteElementB("元素B");

            //创建访问者
            ConCreteVistorA c1 = new ConCreteVistorA();
            ConCreteVistorB c2 = new ConCreteVistorB();

            //访问 把访问者给元素 然后元素内部执行访问者访问自己的方法
            ce1.Accept(c1);
            ce1.Accept(c2);
            ce2.Accept(c2);

            Console.Read();
        }
Ejemplo n.º 2
0
 public override void VisitConcreteElementA(
     ConcreteElementA concreteElementA)
 {
     Console.WriteLine("{0} visited by {1}",
                       concreteElementA.GetType().Name, this.GetType().Name);
 }
Ejemplo n.º 3
0
 public abstract void VisitConcreteElementA(ConcreteElementA concreteElementA);
Ejemplo n.º 4
0
 public override void VisitConcreteElementA(ConcreteElementA concreteElementA)
 {
     Console.WriteLine("{0}被{1}访问", concreteElementA.GetType().Name, this.GetType().Name);
 }
Ejemplo n.º 5
0
 public abstract void VisitConcreteElementA(ConcreteElementA concreteElementA);
Ejemplo n.º 6
0
 public override void VisitConcreteElementA(ConcreteElementA concreteElementA)
 {
     Console.WriteLine($"{concreteElementA.GetType().Name}被{this.GetType().Name}访问");
 }
Ejemplo n.º 7
0
 public override void VisitConcreteElementA(ConcreteElementA concreteElementA)
 {
     throw new NotImplementedException();
 }