何为访问者模式
定义:表示一个作用于某对象结构中的各元素的操作。它让我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作
静态关系图如下
何时使用访问者模式
1、一个复杂的对象结构包含很多其他对象,他们有不同的接口(比如组合体),但是想对这些对象实施一些依赖于其具体类型的操作。
2、需要对一个组合体结构中的对象进行很多不相关的操作,但是不想让这些操作“污染”这些对象的类,可以将相关的操作集中起来,定义在一个访问者类中,并在需要在访问者中定义的操作时使用它。
3、定义复杂结构的类很少作修改,但经常需要向其添加新的操作。
访问者模式有个需要注意的缺点,那就是,访问者与目标类耦合在一起。