根据不同的参数类型调用不同的实现是什么设计模式?

发布于 2022-09-11 15:52:50 字数 373 浏览 27 评论 0

比如:

  1. 某系统对接了3个配送的平台,分别是平台A、平台B、平台C
  2. 对于上层业务来说,只要把自己的订单(这部分属性固定)对象作为参数,以及要配送的平台,比如平台A拿过来调用接口就行了
  3. 以后可能会增加平台D,在不修改接口的情况下,哪个设计模式可以做到灵活扩展的?
  4. 现在能想到的是,根据这个类型,调用不同的平台,接口内写了很多
    if(type==A_CODE){
    //调用平台A的下单接口}
    else if(type==B_CODE){
    // 调用平台B的下单接口
    }else if(type==C_CODE){
    //调用平台C的下单接口
    }

这样,想重构,有没有适合的设计模式?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

独闯女儿国 2022-09-18 15:52:50

像是消除if..else...直接用个Map<Type,Impl>映射不同的实现类就行了,扩展一种类型就增加个key。算是策略模式?

無處可尋 2022-09-18 15:52:50

策略模式是最适合的。

策略模式定义
策略模式(Strategy Pattern),将各种算法封装到具体的类中,作为一个抽象策略类的子类,使得它们可以互换。客户端可以自行决定使用哪种算法。

策略模式简单点说就是根据不同参数选择同一个接口的不同实现。

可以参考这篇文章 Java设计模式(十二) 策略模式

抠脚大汉 2022-09-18 15:52:50

责任链,以后新增的平台只需要新增一个实现即可,配合 spi 美滋滋

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文