skystar coding 2023-09-28 00:49 采纳率: 50%
浏览 4

关于工厂模式开闭原则的疑问

陷入死循环了,关于工厂模式开闭原则的疑问

都说工厂模式符合开闭原则,新增工厂时候只需要实现抽象工厂,然后实现对应的方法就行。但站在使用者角度,在程序中使用工厂模式创建对象时,还是得知道具体要创建什么产品,那这判断什么产品又要用到if else,这不就又变成了简单工厂模式,不符合开闭原则了吗?
又比如:
我为客户端提供一个接口,可以分别实现国内转账,跨境转账,跨星球转账等。他们都是转账服务的子类, 客户只需要请求我一个接口,传入不同参数我可以创建不同的转账服务去执行。我服务端接口处理只能通过客户参数if/else判断。这种场景怎么实现开闭原则呢?

  • 写回答

1条回答 默认 最新

  • threenewbee 2023-09-28 00:54
    关注

    你说的那个叫做静态工厂模式,要把if ... else... 去掉的,是抽象工厂模式。不同的派生不同的类去产生不同的对象。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月28日

悬赏问题

  • ¥30 靶向捕获探针设计软件包
  • ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
  • ¥20 遥感植被物候指数空间分布图制作
  • ¥15 安装了xlrd库但是import不了…
  • ¥20 Github上传代码没有contribution和activity记录
  • ¥20 SNETCracker
  • ¥15 数学建模大赛交通流量控制
  • ¥15 为什么我安装了open3d但是在调用的时候没有报错但是什么都没有发生呢
  • ¥50 paddleocr最下面一行似乎无法识别
  • ¥15 求某类社交网络数据集