我面临一个关于抽象工厂的问题,
class AbstractProductFactory{
public:
virtual ProductA* createProductA() = 0;
virtual ProductB* createProductB() = 0;
};
我有 ConcreteProductFactory 类覆盖创建产品的这两个成员函数。
当我需要添加新ProductC
作品时,我遇到了问题。如果我添加一个新的虚函数ProductC* createProductC() = 0;
,那么所有现有的 ConcreteProductFactory 类都需要修改,这也违反了开闭原则。
克服这个问题的最佳方法是什么?