责任链模式在审批和过滤器中的应用

责任链模式在审批和过滤器中的应用

责任链模式在审批和过滤器中应用广泛。本文讲它的实现方式和适用场景。

先看业务味道

设计模式不是为了炫技,而是为了解决重复变化。比如同一个业务流程里,不同类型有不同算法,就可以考虑策略模式;对象创建过程很复杂,可以考虑工厂模式。

一个策略模式示例

public interface DiscountStrategy {
BigDecimal calculate(BigDecimal amount);
}

public class VipDiscount implements DiscountStrategy {
public BigDecimal calculate(BigDecimal amount) {
return amount.multiply(new BigDecimal("0.8"));
}
}

使用时通过类型选择策略,而不是写一大堆 if else。

判断是否值得使用

如果只有两个简单分支,直接 if 可能更清楚。如果规则经常新增、每个规则都有独立逻辑,模式才真正有价值。


   转载规则


《责任链模式在审批和过滤器中的应用》 小乐 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录