标签:
using System; using System.Collections; using System.Collections.Generic; using System.Linq; namespace ConsoleApplication1 { class Program { public interface IVisitor { void Visit(PrinterA a); void Visit(PrinterB b); } public abstract class Printer { public abstract void Accept(IVisitor visitor); public abstract void Print(); } public class PrinterA:Printer { public override void Accept(IVisitor visitor) { visitor.Visit(this); } public override void Print() { Console.WriteLine("i am is a"); } } public class PrinterB:Printer { public override void Accept(IVisitor visitor) { visitor.Visit(this); } public override void Print() { Console.WriteLine("i am is b"); } } public class ConcreteVisitor:IVisitor { public void Visit(PrinterA a) { a.Print(); } public void Visit(PrinterB b) { b.Print(); } } static void Main(string[] args) { Printer a = new PrinterA(); Printer b = new PrinterB(); a.Accept(new ConcreteVisitor()); b.Accept(new ConcreteVisitor()); } } }
标签:
原文地址:http://www.cnblogs.com/zkzk945/p/5122015.html