+
60
-

回答

核心思想:把“判断条件”和“计算方式”变成独立小模块,像乐高一样自由组合,主流程不再写if-else。

条件模块化:满200元?含电子产品?每个条件封装成独立对象(如MinAmountCondition)。复杂规则(如“满300且含电子产品”)用AndCondition组合,避免嵌套if。

计算策略化:减20元、打9折等算法各自成类(如FixedMinusAction),调用时直接执行,无需switch分支。

规则即配置:优惠券 = 条件 + 计算 + 优先级。新增规则只需组合现有模块,主引擎代码零修改。

最终,计算引擎只需循环检查“能否应用”并执行,所有业务规则内聚在对象内部,彻底告别满屏if-else。规则可配置、易扩展,适合电商多变的营销场景。

参考示例代码

点击打开链接

网友回复

我知道答案,我要回答