明太祖 (@HandsomeY)重生之理解设计模式:策略模式 中发帖

前言
[策略模式]
不喜勿喷,纯小白,有错误希望大佬指出[tieba_100]
在软件开发中,我们常常会遇到这样的场景:​同一个功能需要根据不同的条件选择不同的算法或行为。例如:


电商系统的促销活动(满减、折扣、积分抵扣等),不同活动对应不同的计算规则。


导航系统根据实时路况选择不同的路径策略(最短距离、最快速度、避开拥堵)。


支付系统支持多种支付方式(支付宝、微信、信用卡),每种方式有不同的处理逻辑。


最近开发遇到多平台AI不同处理逻辑也是通过策略模式+工厂方法来开发的


如果直接在代码中通过大量的 if-else 或 switch-case 实现这些分支逻辑,会导致代码臃肿、难以维护,且新增或修改算法时需要频繁修改原有代码,违反开闭原则​(对扩展开放,对修改关闭)。
策略模式正是为了解决这类问题而诞生。它通过将算法抽象为独立的“策略”对象,使得算法可...