Skip to content

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

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

  • WxPayStrategy、AliPayStrategy、UnionPayStrategy 三个实现。

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

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