gpt4 book ai didi

c++ - 抽象工厂查询

转载 作者:太空宇宙 更新时间:2023-11-04 11:48:09 25 4
gpt4 key购买 nike

我遇到了一个关于抽象工厂的问题,

 class AbstractProductFactory{
public:
virtual ProductA* createProductA() = 0;
virtual ProductB* createProductB() = 0;
};

我有 ConcreteProductFactory 类覆盖创建产品的那两个成员函数。

当我需要添加新的 ProductC 创建时,我遇到了一个问题。如果我添加一个新的虚函数 ProductC* createProductC() = 0; 那么所有现有的 ConcreteProductFactory 类都需要修改,这也违反了开闭原则。

克服这个问题的最佳方法是什么?

最佳答案

那么您只需要为那些需要创建 ProductC 的类创建一个新接口(interface)。让新接口(interface)继承旧接口(interface),修改那些类以继承新接口(interface),然后在这些类上实现您需要的方法。旧代码看不到任何差异或变化。

class NextAbstractProductFactory: public AbstractProductFactory{
public:
virtual ProductA* createProductA() = 0;
virtual ProductB* createProductB() = 0;
virtual ProductC* createProductC() = 0;
};

关于c++ - 抽象工厂查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19301892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com