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

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

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

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

  • 写回答

1条回答 默认 最新

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

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

    评论

报告相同问题?

问题事件

  • 创建了问题 9月28日