【发布时间】:2012-07-13 05:43:31
【问题描述】:
假设有如下工厂。我想知道是否可以不包括 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();
}
};
【问题讨论】:
-
谢谢。这真的很有帮助。但是,注册函数调用是在工厂的构造函数中。我只是想知道是否可以将它放在具体类中。
标签: c++ factory-pattern