工厂设计模式问题
factory design pattern issue
假设有一个工厂,如下所示。我想知道是否可以不包括ObjectA.h和ObjectB.h。
目录结构
工厂
|-----ObjectA
|-----ObjectB
既然我不想把头文件包括在子目录中,有什么办法吗?如果有一个新的objectC,它就不需要修改工厂类。如果类型为"TypeC",它将自动创建ObjectC。
#include "ObjectA.h"
#include "ObjectB.h"
object* create(const string& type)
{
if (type == "typeA")
{
return new ObjectA();
}
else
{
return new ObjectB();
}
};
是的,将实现分离到一个实现文件中,并且只包括那里的文件,在头中只提供函数原型。
要实际调用new ObjectA();
和new ObjectB();
,必须在调用站点中包含定义。
//factory.h
object* create(const string& type);
//factory.cpp
#include "factory.h"
#include "ObjectA.h"
#include "ObjectB.h"
object* create(const string& type)
{
if (type == "typeA")
{
return new ObjectA();
}
else
{
return new ObjectB();
}
};
相关文章:
- 派生类是否可以在抽象工厂设计模式中具有数据成员
- 资源管理设计模式
- 用于在回调中调用解析器的设计模式
- 需要为 C++ 中的以下问题设计递归算法
- 设计帮助 - 为不同类型的消息处理通用接口的设计模式
- 在这种情况下我应该使用哪种设计模式
- C++中物体改变识别的设计模式?
- 确保所有构造函数调用相同的函数 c++ 设计模式
- 需要实例化不同类/对象并在启动时确定的硬件插槽的设计模式
- 设计模式,以避免不必要地添加抽象函数以适应新功能
- 工厂设计模式优化
- 使用C++模板的数据映射器设计模式
- 在C++中寻找解决此问题的特定设计模式
- 观察员设计模式问题
- 与访问者设计模式的实现相关的问题
- 工厂设计模式问题
- 观察者设计模式接口契约设计问题
- 对象池设计模式问题
- C++为一般设计问题找到最合适的设计模式
- c++设计模式问题.单接口多实现