假设有如下工厂。我想知道是否可以不包括 ObjectA.h 和 ObjectB.h。
目录结构
工厂
|-----对象A
|-----对象B
由于我不想在子目录中包含头文件,有什么办法吗?并且如果有新的objectC,则不需要修改工厂类。如果类型是“TypeC”,它将自动创建 ObjectC。
#include "ObjectA.h"
#include "ObjectB.h"
object* create(const string& type)
{
if (type == "typeA")
{
return new ObjectA();
}
else
{
return new ObjectB();
}
};