Bootstrap

逐步理解访问者模式

模型图
在这里插入图片描述
包含了以下几部分内容

  • 抽象访问者Visitor:定义抽象的处理不同资源的方法
  • 具体访问者ConcreteVisitor:对不同资源的处理进行具体的实现,处理逻辑要放在这个地方
  • 抽象元素Element:抽象元素可以看作要用到的资源,提供一个抽象方法,参数是访问者,也就是资源要和访问者做关联;
  • 具体元素ConcreteElement:具体要用的资源,要实现accept抽象方法,在方法中要让访问者使用资源,直接调用访问者中的抽象方法,方法的具体实现是由具体元素类和传入的访问者共同决定的;
  • 对象结构:定义一个集合容器,用来存储所有的具体元素,并提供遍历元素的方法,在进行调用的时候传入访问者,然后就可以调用到具体元素的accept方法,从而调用到具体访问者处理具体元素的visit方法;
  • 客户类:相当于操作对象结构的入口类,可以用来控制有哪些具体元素,和有哪些具体访问者;
;