一、说明
访问者模式是一种行为设计模式,它能在不改变元素类的情况下定义对元素对象的新操作
(一) 解决问题
将算法与对象结构分离,使得算法可以独立于对象结构而变化。主要解决在不改变对象结构的前提下,增加新的操作或功能
(二) 使用场景
- 对象结构中的元素需要不同方式的操作,并且这些操作需要相互独立,不影响元素类的稳定性和扩展性。
- 对象结构中的元素类经常变化,但是需要为对象结构中的元素添加新的操作。
- 需要对一个对象结构中的元素进行复杂的、多变的操作,而不希望这些操作污染元素类。
二、结构
- 访问者(Visitor)接口声明了一系列以对象结构的具体元素为参数的访问者方法。如果编程语言支持重载,这些方法的名称可以是相同的,但是其参数一定是不同的。
- 具体访问者(ConcreteVisitor)会为不同的具体元素类实现相