我有一個帶有幾個派生類的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