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

设计模式篇之 策略模式 Strategy

目的

策略是一种行为型设计模式,它让你可以定义一系列算法,将每个算法放入一个单独的类中,并使它们的对象可以互换。

问题

有一天,你决定为普通旅行者创建一个导航应用程序。该应用程序以一张精美的地图为中心,帮助用户在任何城市快速定位。

该应用程序最受请求的功能之一是自动路线规划。用户应该能够输入一个地址,并在地图上看到到达该目的地的最快路线。

该应用程序的第一个版本只能在道路上构建路线。开车旅行的人们欣喜若狂。但显然,并不是每个人都喜欢在度假时开车。因此,在下一次更新中,你添加了一个构建步行路线的选项。紧接着,你又添加了一个选项,让人们可以在路线中使用公共交通。

然而,这只是一个开始。后来,你计划为骑自行车的人添加路线构建功能。再后来,你又添加了一个选项,用于构建穿过城市所有旅游景点的路线。

导航器的代码变得臃肿。

从商业角度来看,该应用程序取得了成功,但技术部分却让你头痛不已。每次你添加一个新的路线算法时,导航器的主要类的大小就会翻倍。在某个时刻,这个怪物变得难以维护。

对其中一个算法的任何更改,无论是简单的错误修复还是对街道评分的轻微调整,都会影响整个类,增加了在已经工作的代码中创建错误的机会。</

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

相关文章:

  • 【HarmonyOS】并发线程间的通信
  • 2三、buildroot
  • 开源 C++ QT QML 开发(二十二)多媒体--ffmpeg编码和录像
  • 详细分析平衡树--红黑树(万字长文/图文详解)
  • 国产开源代码管理工具 GitPuk 安装+入门全流程解析
  • wordpress本地视频教程免费网站seo优化
  • 前端布局入门:flex、grid 及其他常用布局
  • Excel中将毫秒时间戳转换为标准时间格式
  • 传奇网站模板免费下载建立网站需要多少钱费用
  • 第2讲:Go内存管理机制深度解析
  • 【解决】mayfly-go 容器启动失败 —— failed to connect to mysql!
  • 基于STM32低功耗授时系统的硬件电路设计-上
  • 嵌入式软件架构--多窗口显示1(后台软件实现)
  • 牛商网网站建设企业网站开发建设
  • 软件供应链安全的革命:深度解析链图·SBOM管理服务平台的技术突破
  • QChart控件:图例QLegend
  • 【活动预告】2025斗拱开发者大会,共探支付与AI未来
  • 开源Filestash 搭建“多合一”文件管理器
  • Web3.0的底层引擎
  • 建设一个手机网站怎么制作网站生成图片
  • QEMU:如何组织与 I2C 设备的透明交互
  • 精密电子东莞网站建设技术支持视频网站建设类图
  • AI+大数据时代:从架构重构看时序数据库的价值释放——关键概念、核心技巧与代码实践
  • CoRL-2025 | VLM赋能高阶推理导航!ReasonNav:在人类世界中实现与人类一致的导航
  • ARM开发板基础与文件传输
  • 【读书笔记】《一念之差》
  • ssh端口探测 端口测试
  • 计算机操作系统:避免死锁
  • YOLOv3 详解:核心改进、网络架构与目标检测实践
  • Redis过期键的删除策略有哪些?