0%

Visitor

1. 意图

  • 将数据的结构与操作相分离

2. 适用场景

  • 数据结构比较稳定, 但是需要经常对此数据结构定义新的操作
  • 在一个复杂类型中, 需要遍历很多子元素, 且子元素的类型可能不同
  • 需要给类型中定义许多不同且不相关的操作

3. 实现

3.1. 参与者

3.2. 结构

4. 特点

  • Visitor 职责单一, 扩展灵活
  • Visitor 需要知道被访问者的具体细节, 违反了迪米特原则和依赖倒置原则

4.1. 开发规范