访问者模式(Visitor Pattern)是一种行为型设计模式,它将数据结构与作用于数据结构上的操作分离,使得操作可以独立于数据结构进行变化。访问者模式允许在不修改数据结构的前提下,增加新的对数据结构元素的操作。
一、基础
1. 意图
将算法与对象结构分离,使得可以在不修改现有对象结构的情况下定义新的操作。
2. 使用场景
典型应用:
- 需要对复杂对象结构中的元素执行多种不相关的操作
- 对象结构包含多个类,希望对这些类实施不同的操作
- 需要频繁添加新操作而不想修改元素类
- 对象结构很少变化但经常需要定义新操作
具体案例:
- 编译器语法树分析(类型检查、优化、代码生成)
- 文档处理(渲染、拼写检查、字数统计)
- UI组件事件处理
- 财务系统报表生成
3. 模式结构
- 访问者(Visitor):定义了对具体元素进行操作的抽象方法,这些方法的参数通常是具体元素类型。访问者可以通过这些方法来访问和操作元素。
- 具体访问者(ConcreteVisitor)ÿ