news 2026/6/17 16:36:50

策略模式不是 Map 替代 if-else 就完事了——Spring 怎么用它做路由分发的

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
策略模式不是 Map 替代 if-else 就完事了——Spring 怎么用它做路由分发的

策略模式不是 Map 替代 if-else 就完事了——Spring 怎么用它做路由分发的

有个面试很经典的场景题:“怎么优化这段 if-else?”

publicBigDecimalcalculatePrice(Orderorder){if(order.getType()==OrderType.NORMAL){returnorder.getAmount().multiply(newBigDecimal("1.0"));}elseif(order.getType()==OrderType.VIP){returnorder.getAmount().multiply(newBigDecimal("0.9"));}elseif(order.getType()==OrderType.SVIP){returnorder.getAmount().multiply(newBigDecimal("0.8"));}elseif(order.getType()==OrderType.WHOLESALE){returnorder.getAmount().multiply(newBigDecimal("0.7")).subtract(newBigDecimal("50"));}thrownewIllegalArgumentException("unknown type");}

标准答案是策略模式 + Map:

@ComponentpublicclassPriceCalculator{privateMap<OrderType
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/17 16:29:40

【技术全景解析】-- 云原生架构的四大支柱与落地实践

1. 云原生架构的四大支柱解析 第一次接触云原生概念时&#xff0c;我盯着CNCF的全景图发了半小时呆——上百个开源项目密密麻麻排列在四层架构中&#xff0c;像极了乐高积木的零件清单。后来在真实项目里踩过坑才明白&#xff0c;这套架构本质上是用标准化组件搭建现代化应用的…

作者头像 李华
网站建设 2026/6/17 16:29:03

ExtractorSharp:游戏资源编辑的终极神器,5分钟从零到精通

ExtractorSharp&#xff1a;游戏资源编辑的终极神器&#xff0c;5分钟从零到精通 【免费下载链接】ExtractorSharp Game Resources Editor 项目地址: https://gitcode.com/gh_mirrors/ex/ExtractorSharp 你是否曾经想要修改游戏中的角色时装、技能图标或者界面元素&…

作者头像 李华
网站建设 2026/6/17 16:25:01

构建企业级Web安全检测体系:Wapiti实战深度解析

构建企业级Web安全检测体系&#xff1a;Wapiti实战深度解析 【免费下载链接】wapiti Web vulnerability scanner written in Python3 项目地址: https://gitcode.com/gh_mirrors/wa/wapiti 在当今数字化转型浪潮中&#xff0c;Web应用安全已成为企业面临的核心挑战。面对…

作者头像 李华
网站建设 2026/6/17 16:21:31

Treelite:为什么你的决策树模型需要一个通用翻译器?

Treelite&#xff1a;为什么你的决策树模型需要一个通用翻译器&#xff1f; 【免费下载链接】treelite Universal model exchange and serialization format for decision tree forests 项目地址: https://gitcode.com/gh_mirrors/tr/treelite 在机器学习的世界里&#…

作者头像 李华
网站建设 2026/6/17 16:19:00

5步掌握Godot物理关节:从基础约束到复杂机械结构设计

5步掌握Godot物理关节&#xff1a;从基础约束到复杂机械结构设计 【免费下载链接】godot Godot Engine – Multi-platform 2D and 3D game engine 项目地址: https://gitcode.com/GitHub_Trending/go/godot 想要在Godot中创建逼真的机械装置却总被卡顿和穿模困扰&#x…

作者头像 李华
网站建设 2026/6/17 16:16:31

FossFLOW容器化部署实战:高效构建专业级等距图表绘制平台

FossFLOW容器化部署实战&#xff1a;高效构建专业级等距图表绘制平台 【免费下载链接】FossFLOW Make beautiful isometric infrastructure diagrams 项目地址: https://gitcode.com/GitHub_Trending/openflow1/FossFLOW FossFLOW作为一款现代化的开源等距图表绘制工具&…

作者头像 李华