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

第1篇:从“促销活动”的一堆 if-else 说起

第1篇:从“促销活动”的一堆 if-else 说起

摘要:电商促销的满减、打折、立减逻辑写在同一个方法里,导致代码臃肿、难以扩展。本文从真实痛点出发,揭示策略模式如何通过算法封装消除条件分支,并附上场景判断表。

本文是《Java 23 种设计模式:从踩坑到精通》策略模式长文的扩充短文第1篇,帮助你碎片化掌握核心知识点。


你有没有写过这样的代码?

doublecalculate(Orderorder,StringpromotionType){if("满减".equals(promotionType)){returnorder.getTotal()-(order.getTotal()/200)*50;}elseif("打折".equals(promotionType)){returnorder.getTotal()*0.8;}elseif("立减".equals(promotionType)){returnorder.getTotal()-30;}returnorder.getTotal();}

每次新增一种促销方式,就得在这个方法里再加一个else if。代码越来越长,逻辑越来越混乱。更糟糕的是,修改满减逻辑可能会不小心影响到打折逻辑,测试也变得异常困难。

策略模式正是为此而生

它把每一种算法封装成一个独立的策略类,让它们可以相互替换。调用方只需要选择一个策略,交给上下文执行,至于算法内部怎么算,调用方根本不需要关心。


你的场景该不该用策略模式?

判断标准是 → 用策略模式否 → 用其他方式
同一个操作有多种实现方式,且可能动态切换
算法逻辑复杂,相互独立,需要避免冗长的条件语句
未来需要增加新的算法,且不希望修改原有代码
只有两三种固定不变的简单分支直接使用if-else即可

一句话总结:同一操作、多种算法、需要灵活切换 → 用策略模式,告别 if-else 泥潭。


📖完整长文入口:本文是策略模式扩充系列的第1篇。如果你想一次性阅读完整内容(含UML、完整代码、框架应用、面试追问等),请查看原长文:

👉 《Java 23 种设计模式:从踩坑到精通 | 策略模式》

🔗 系列导航:

  • 上一篇:无(本篇为首篇)
  • 下一篇:第2篇:策略模式三大角色拆解与UML
  • 返回扩充系列目录 🔥 订阅本专栏,不错过每一篇
  • 原系列总目录 🔥 订阅本专栏,不错过每一篇
http://www.jsqmd.com/news/1144957/

相关文章:

  • 进程监控核心命令top详解
  • PYTHON+AI LLM DAY NINTY-NINE
  • AIGC检测2026年必看:论文AI率过高怎么办?检测与降重全攻略
  • 2026年,揭秘苦荞米背后的绿色生产故事
  • 公立医院医美科系统选型:合规先行!
  • 亲测分享国内专业鲜米机品牌!
  • 【C++】014、左值与右值的区别
  • 暑期成长转型实操指南:凤凰少年 AI 分层特训能力进阶手册
  • BUUCTF 简单注册器
  • [特殊字符] 从零到一玩转CODEX智能体开发:一套课搞定AI自动化视频/办公/数字人/小程序
  • 新高考高中语文必背古诗文72篇PDF电子版(含默写练习题)
  • 【UE源码精读-ActionRPG】伤害管线:从捕获到扣血
  • ZYNQ XCZU27DR FreeRTOS TTC 定时器中断学习笔记
  • 算法之旅-Hot100—移动零
  • UE4SS终极指南:5分钟掌握虚幻引擎游戏脚本注入与修改
  • 【C++】015、函数参数:值传递,指针传递,引用传递的区别
  • 方差(实例实操、与标准差的区别)
  • Windows 11 云重建功能实测:无需U盘也能从云端恢复系统
  • 梅开二度,这次拿下系统分析师
  • 调试问题总结
  • 电玩城测评 3 种拳击机器人:海岸城实测,为什么有的只热闹一阵,有的能拉起 PK 复玩
  • SystemC:内核回调函数
  • 会计岗位智能报税和对账用哪款Agent?主流企业级智能体选型与技术解析
  • 研究生招生国家分数线 API 接口
  • 我同时用了 Claude Code、Cursor 和 Codex,说说三个工具的真实差距——2026 年选错工具比不用 AI 更浪费时间
  • 倒置荧光显微镜LF200-类器官与器官芯片:生命科学的前沿窗口
  • 长沙阳台推拉门怎么选?不卡顿、不漏水、隔音好,照着选就对了
  • S32K14X CAN
  • 我给 AI 提了个小需求,它帮我“重构“了整个系统——AI 编程范围失控怎么办?
  • 深度解密大模型 Agent 的终极银弹:Browser(浏览器沙箱)操作全指引与检索降级闭环