我有一个带有几个派生类的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::function<base*()> factory_ptr;
使用boost ::绑定/λ,这似乎让我的代码更多的可组合,如果我希望我可以包装一个真正的工厂对象。我可以看到,性能可能会有所下降,但这很值得担忧,因为它只是在启动时调用。
指针将允许实现抽象工厂模式。我已经在上面扩展了它 – 2009-02-17 09:50:33