工廠模式將建立物件的**從客戶**中分離,提供了一種在大系統中管理建立眾多物件的有效方法。當從配置檔案或流中建立物件時,經常採用這種模式。
這裡提供一種通用實現,可以作為參考。
#include #include namespace factory
private:
allocator m_allocate;
}; template>
class factory
templatevoid insert_class(const key_type& key)
pointer construct(const key_type& key) const
void destroy(pointer p)
private:
typedef boost::functionfactory_type;
typedef std::map, typename allocator_type::rebind>::other > factories_type;
factories_type m_factories;
};}
為了保證建立和銷毀物件的一致性,工廠類提供了銷毀物件的方法。
以下是個測試例子:
struct base
;struct a : public base
};struct b : public base
};void test()
{ factory::factoryfact;
fact.insert_class(1);
fact.insert_class(2);
base* pbase=fact.construct(1);
cout 軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設... 抽象工廠模式 工廠模式,屬於設計模式三大類之一的建立模式裡。其核心思想是提供乙個建立物件的超類,允許通過該介面指定建立子類物件的型別。從go的角度應用的說,工廠模式就是提供乙個超類,這個超類有乙個建立介面,我們可以通過這個介面獲取不同的物件,這些物件實現了同一系列的介面,所以他們可以用同乙個inte... 抽象工廠方法 抽象工廠模式是圍繞乙個超級工廠建立其他工廠。該超級工廠又稱為其他工廠的工廠。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指定它們的類。每個生成的工廠都能按照工廠模式提供物件。一 基本模式的實現 以乙個使...設計模式C 實現 工廠模式
Go實現設計模式 工廠模式
設計模式 抽象工廠模式實現