完成** 見
1. 設計模式中抽象工廠的泛型 實現
2. c++ 自動生成模板** 的例子 具體實現見:c++ 泛型程式設計 之 自動生成**
// the loki library
// this code accompanies the book:
// alexandrescu, andrei. "modern c++ design: generic programming and design
// permission to use, copy, modify, distribute and sell this software for any
// the author or addison-wesley longman make no representations about the
// suitability of this software for any purpose. it is provided "as is"
// without express or implied warranty.
#ifndef loki_abstractfactory_inc_
#define loki_abstractfactory_inc_
// $id: abstractfactory.h 771 2006-10-27 18:05:03z clitte_bbt $
#include "hierarchygenerators.h"
#include "typelists.h"
#include #include namespace loki
; class b:public a
}; 使用:
b b;
*/ template class abstractfactoryunit
};// class template abstractfactory
// defines an abstract factory inte***ce starting from a typelist
template
<
class tlist,
template class unit = abstractfactoryunit
>
class abstractfactory : public genscatterhierarchy
};// class template opnewfactoryunit
// creates an object by invoking the new operator
template class opnewfactoryunit : public base
;} // namespace loki
#endif // end file guardian
class soldier };
class monster };
class supermonster };
class sillysoldier : public soldier {};
class sillymonster : public monster {};
class sillysupermonster : public supermonster {};
class badsoldier : public soldier {};
class badmonster : public monster {};
class badsupermonster : public supermonster {};
void abstractfactory_test()
下圖 為 兩個類 的繼承關係圖
c 模板實現抽象工廠
1.工廠方法 factory method 模式工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠角色的情...
c 之抽象工廠模式
抽象工廠模式和工廠方法模式類似,因此也被稱為工廠家族模式,屬於建立型設計模式。以下的例子說明 市場上有神奇公司和希望公司,他們同時可以生產滑鼠和電池,但是兩個公司的滑鼠和電池型號卻是不一樣的。imouseproduct 抽象滑鼠產品 ibatteryproduct 抽象電池產品 magicbatte...
工廠模式之抽象工廠
工廠模式之抽象工廠 是一種建立型設計模式,它能建立一系列相關的物件,而無需指定其具體類。類繼承自抽象工廠,即可生產指定物件。新增實體的時候無需修改已有 比如食物這個工廠,在現實世界中,它可以生產麵包 雞蛋 肉等,在魔法世界中,食物工廠可以生產魔法豆 會唱歌的火雞 hp口服液等,我們把食物比作是最大的...