软设之访问者模式

设计模式中访问者模式的意图是:

表示一个作用于某对象结构中的各元素的操作,使得在不改变各元素的类的前提下定义作用于这些元素的新操作。

举个例子,比如说有个游客想去几个景点,去每个景点都想按统一的流程。但是每个景点都有各自不同的展示和流程,不可能单独为了这个游客改。这个游客就自己设定一套流程,每个景点对接,这样景点就不用修改了。

Visitor:抽象访问者,为对象结构类中每一个ConcreteElement的类声明一个Visit操作。

ConcreteVisitor:具体访问者,实现每个由Visitor声明的操作

Element:元素,定义一个Accept操作,它以一个访问者为参数

ObjectStructure:对象结构类

相关推荐
ab1237687 小时前
Spring Integration 完整笔记 + 和 spring-integration-mqtt、Paho、EMQX 的关系
java·笔记·spring
ACP广源盛139246256737 小时前
Type-C 扩展坞方案选型笔记|国产 DP1.2 转 HDMI2.0 桥接芯片 GSV2201D@ACP 评估
开发语言·笔记·硬件架构·硬件工程·hdmi·国产芯片
旖旎夜光7 小时前
【LangGraph实战】LangGraph 学习笔记(四):持久化——从线程记忆到跨会话长期记忆
人工智能·笔记·python·学习·ai编程·langgraph
kdxiaojie7 小时前
MPU6050学习
笔记·学习·mpu6050
geovindu8 小时前
rust: Borg Pattern(续)
开发语言·后端·设计模式·rust·博格模式
qq_2842740518 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
qq_2842740520 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
Titan202420 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
深圳老胡1 天前
STM32CubeMX 生成 CMake 工程,用 VSCode 编译与调试的完整流程
笔记·stm32·单片机·代码规范
坤坤子吖1 天前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习