访问者模式 (Visitor Pattern)
表示一个作用于某对象结构中的各元素的操作
一、模式概述
1.1 定义
访问者模式(Visitor Pattern)是一种行为型设计模式,它表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
1.2 适用场景
- 一个对象结构包含很多类对象,它们有不同的接口,而你想对这些对象实施一些依赖于其具体类的操作
- 需要对一个对象结构中的对象进行很多不同的并且不相关的操作
- 定义对象结构的类很少改变,但经常需要在此结构上定义新的操作
1.3 优缺点
| 优点 | 缺点 |
|---|---|
| 增加新的操作很容易 | 增加新的元素类很困难 |
| 将相关行为集中到一个访问者中 | 破坏封装性 |
| 访问者可以访问不同层次的元素 | 可能违反依赖倒置原则 |