# Why
访问者模式(Visitor Pattern):提供一个作用于某对象结构中的各元素的操作表示,使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
# What
# UML
# 角色说明
Visitor(抽象访问者):为对象结构中每一个具体元素类声明一个访问方法
ConcreteVisitor(具体访问者):实现了由抽象访问者声明的操作,每一个操作用于访问对象结构中一种类型的元素
Element(抽象元素):定义了Accept方法,接受一个抽象访问者
# 适用场景
- 一个对象包含多个类型的对象,希望对这些对象实施一些依赖其具体类型的操作
- 对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作