Visitor Pattern(访问者模式)

书上的定义:

“作用于某个对象群中各个对象的操作. 它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作.”

其中对象群指的是一个数据集合,例如一个链表,一个List,一个Collection等等……

先看一下不用该模式之前的代码:

public interface ITest1 { String GetStr1(); } public interface ITest2 { String GetStr2(); } public class Test1 : ITest1 { public String GetStr1() { return "Test1"; } } public class Test2 : ITest2 { public String GetStr2() { return "Test2"; } } public class Program { public static void Main(string[] args) { ArrayList list = new ArrayList(); list.Add(new Test1()); list.Add(new Test2()); for (int i = 0; i < list.Count; i++) { if (list[i] is ITest1) { Console.WriteLine(((ITest1)list[i]).GetStr1()); } else if (list[i] is ITest2) { Console.WriteLine(((ITest2)list[i]).GetStr2()); } } } }

相关文章: