Visitor(访问者):负责对数据结构中每个具体的元素声明一个用于访问的方法。

ConcreteVisitor(具体的访问者):负责实现Visitor角色所定义的接口

Element(元素):表示Visitor角色的访问对象,声明一个接受访问者的accept方法,参数为Visitor角色

ConcreteElement(具体元素):负责实现Element角色定义的接口

ObjectStructure(对象结构):ObjectStructure角色负责处理Element角色的集合