当前位置: 首页 > news >正文

设计模式篇之 访问者模式 Visitor

目的

访问者是一种行为型设计模式,它让你可以将算法与它们操作的对象分离。

问题

假设你的团队正在开发一个处理地理信息的应用程序,这些地理信息被结构化为一个庞大的图。图中的每个节点可以表示一个复杂的实体,如城市,也可以表示更细粒度的东西,如工业区、旅游景点等。如果它们所代表的实体之间有道路相连,那么这些节点也会相互连接。在底层,每种节点类型都由其自己的类表示,而每个具体的节点都是一个对象。

将图导出为 XML。

在某个时刻,你得到了一个任务,将图导出为 XML 格式。最初,这项工作看起来相当直接。你计划在每个节点类中添加一个`export`方法,然后利用递归遍历图中的每个节点,执行`export`方法。这个解决方案简单而优雅:多亏了多态,你没有将调用`export`方法的代码与节点的具体类耦合。

不幸的是,系统架构师拒绝让你修改现有的节点类。他说代码已经在生产环境中使用,他不想因为你的更改中可能存在的错误而冒险破坏它。

http://www.dtcms.com/a/503489.html

相关文章:

  • 疾控网站建设宗旨和目的wordpress设置为繁体字
  • 免费视频素材网站有哪些游戏制作公司
  • 09_Windows平台Redis开发环境配置完整指南
  • 小谈:数据地图在制造企业的应用
  • 网站建设行业分析报告学校为什么要做网站
  • 手机特殊网站wordpress 环境
  • 使用Linux系统函数递归遍历指定目录
  • h5游戏免费下载:龟兔再跑
  • opendds初入门之qos策略初了解(有遗留)
  • 多视图几何--立体匹配--Gipuma
  • C++智能指针全面解析:原理、使用场景与最佳实践
  • C++指针使用
  • 内江规划建设教育网站国家企业信用公示信息网官网
  • 深入理解 lscpu 命令:如何准确查看 CPU 信息
  • 网站建设需要什么人希腊网站后缀
  • DSync for Mac 文件对比同步工具
  • 「日拱一码」123 内嵌神经网络ENNs
  • C++与易语言开发的基础要求分享
  • 上海市住宅建设发展中心网站建设网站有何要求
  • 广州企业网站建设公司哪家好wordpress改html5
  • ARM 架构核心知识笔记(整理与补充版)
  • 《i.MX6ULL LED 裸机开发实战:从寄存器到点亮》
  • 迈向零信任存储:基于RustFS构建内生安全的数据架构
  • 网站开发公司找哪家帮卖货平台
  • C++ Vector:动态数组的高效使用指南
  • html5微网站漂亮网站
  • C++ 分配内存 new/malloc 区别
  • Respective英文单词学习
  • 网络排错全流程:从DNS解析到防火墙,逐层拆解常见问题
  • 移动端开发工具集锦