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());
}
}
}
}