场景:订单中心需要对接 3 种支付渠道(微信、支付宝、银联),且未来会不断新增。
做法:
• 策略模式 + 工厂模式
PaymentStrategy接口:统一pay()、refund()、query()。WxPayStrategy、AliPayStrategy、UnionPayStrategy三个实现。PaymentFactory.get(type)根据前端传参返回对应策略。
• 模板方法抽象类
AbstractPayStrategy把“签名校验→日志→结果转换”写成模板,子类只关心业务差异。
效果:新增一个渠道 → 新增一个类 + 1 行注册代码,上线 0 修改老逻辑,需求交付周期从 3 天降到 0.5 天。