根據uml圖簡單**進行演示過程如下:
product.h
abstractfactory.h#ifndef _product_h_
#define _product_h_
class abstractproducta
; class abstractproductb
; class producta1:public abstractproducta
; class producta2:public abstractproducta
; class productb1:public abstractproductb
; class productb2:public abstractproductb
; #endif
兩個cpp實現檔案#ifndef _abstractfactory_h_
#define _abstractfactory_h_
class abstractproducta;
class abstractproductb;
class abstractfactory
; class concretefactory1:public abstractfactory
; class concretefactory2:public abstractfactory
; #endif
#include"abstractfactory.h"
#include"product.h"
#includeusing namespace std;
abstractfactory::abstractfactory()
abstractfactory::~abstractfactory()
concretefactory1::concretefactory1()
concretefactory1::~concretefactory1()
abstractproducta*
concretefactory1::createproducta()
abstractproductb*
concretefactory1::createproductb()
concretefactory2::concretefactory2()
concretefactory2::~concretefactory2()
abstractproducta*
concretefactory2::createproducta()
abstractproductb*
concretefactory2::createproductb()
abstractfactory模式的實現**很簡單,在測試程式中可以看到,當我們要建立一組對#include"product.h"
#includeusing namespace std;
abstractproducta::abstractproducta()
abstractproducta::~abstractproducta()
abstractproductb::abstractproductb()
abstractproductb::~abstractproductb()
producta1::producta1()
象(producta1,producta2)的時候我們只用維護乙個建立物件(concretefactory1),大大
簡化了維護的成本和工作。
abstractfactory模式和factory模式的區別是初學(使用)設計模式時候的乙個容易引
起困惑的地方。實際上,abstractfactory模式是為建立一組(有多類)相關或依賴的物件提
供建立介面,而factory模式是為一類物件提供建立介面或延遲物件的建立到子類中實現。並且可以看到,abstractfactory模式通常都是使用factory模式實現(concretefactory1)。
抽象工廠,Abstract Factory
抽象工廠的定義是 提供乙個介面用於建立一系列相關或依賴的物件,而不需要指定具體的類。其uml類圖的示例如下 在這個模式中,參與者包括 實現 public inte ce abstractfactory public class concretefactorya abstractfactory pub...
設計模式 AbstractFactory
回想工廠方法模式,大廳可能有多種風格,a和b的widget也可能是不同組別不同人進行開發。這種情況下乙個工廠類顯然對 結構,程式可維護性有影響。我們可以建立多個widgetfactory分別生成a,b類的widget。abstractfactory.h ifndef abstractfactory ...
抽象工廠(Abstract Factory)
抽象工廠 abstract factory 抽象工廠,提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。別名 kit結構 參與者 abstractfactory 宣告乙個建立抽象產品物件的操作介面。concretefactory 實現建立具體產品物件的操作。abstractprod...