访问者模式 访问者模式是一种将算法与对象结构分离的软件设计模式 这个模式的基本想法如下首先我们拥有一个由许多对象构成的对象结构这些对象的类都拥有一个accept方法用来接受访问者对象访问者是一个接口它拥有一个visit方法这个方法对访问到的对象结构中不同类型的元素作出不同的反应在对象结构的一次访问过程中我们遍历整个对象结构对每一个元素都实施accept方法在每一个元素的accept方法中回调访问者的visit方法从而使访问者得以处理对象结构的每一个元素我们可以针对对象结构设计不同的实在的访问者类来完成不同的操作 访问者模式使得我们可以在传统的单分派语言如SmalltalkJava和C中模拟双分派技术对于支持多分派的语言如CLOS访问者模式已经内置于语言特性之中了从而不再重要