我有一个带有几个派生类的ABC.要创建这些派生类,我使用工厂模式:
.h文件:
class derivedFactory { public: base* createInstance(); };
.cpp文件:
base* derivedFactory::createInstance() { return new derived(); }
只有拥有一个免费功能,这有什么好处:
.h文件:
base* derivedFactoryFunction();
.cpp文件:
base* derivedFactoryFunction() { return new derived(); }
另外:我使用抽象工厂模式进行依赖注入.我可能会使用基于ABC的继承层次结构:
class objectCreator { public: base* create() = 0; };
在函数指针上使用它有什么好处:
boost::functionfactory_ptr;
使用boost :: bind/lambda这似乎使我的代码更易于组合,如果我希望我可以在其中包装一个真正的工厂对象.我可以看到可能会有轻微的性能下降,但这很令人担心,因为它只在启动时调用.