明太祖 (@HandsomeY) 在 重生之理解设计模式:策略模式 中发帖
前言
[策略模式]
不喜勿喷,纯小白,有错误希望大佬指出[tieba_100]
在软件开发中,我们常常会遇到这样的场景:同一个功能需要根据不同的条件选择不同的算法或行为。例如:
电商系统的促销活动(满减、折扣、积分抵扣等),不同活动对应不同的计算规则。
导航系统根据实时路况选择不同的路径策略(最短距离、最快速度、避开拥堵)。
支付系统支持多种支付方式(支付宝、微信、信用卡),每种方式有不同的处理逻辑。
最近开发遇到多平台AI不同处理逻辑也是通过策略模式+工厂方法来开发的
如果直接在代码中通过大量的 if-else 或 switch-case 实现这些分支逻辑,会导致代码臃肿、难以维护,且新增或修改算法时需要频繁修改原有代码,违反开闭原则(对扩展开放,对修改关闭)。
策略模式正是为了解决这类问题而诞生。它通过将算法抽象为独立的“策略”对象,使得算法可...