访问者模式(VisitorPattern)是一种将算法与对象结构分离的行为型设计模式。这种模式主要用于对一个由许多不同类型的对象构成的复杂对象结构(如组合结构)进行操作,而不需要对这些对象的类进行修改。

访问者模式涉及以下几个角色:

  1. 访问者(Visitor):为每一个具体元素类声明一个访问操作。
  2. 具体访问者(ConcreteVisitor):实现每个由访问者声明的操作。
  3. 元素(Element):定义一个接受访问者的方法。
  4. 具体元素(ConcreteElement):