Skip to content

场景:订单中心需要对接 3 种支付渠道(微信、支付宝、银联),且未来会不断新增。
做法:
策略模式 + 工厂模式

  • PaymentStrategy 接口:统一 pay()refund()query()

  • WxPayStrategyAliPayStrategyUnionPayStrategy 三个实现。

  • PaymentFactory.get(type) 根据前端传参返回对应策略。
    模板方法

  • 抽象类 AbstractPayStrategy 把“签名校验→日志→结果转换”写成模板,子类只关心业务差异。
    效果:新增一个渠道 → 新增一个类 + 1 行注册代码,上线 0 修改老逻辑,需求交付周期从 3 天降到 0.5 天。