Abstract Factory 抽象工廠模式

2021-06-21 22:40:06 字數 2177 閱讀 9868

根據uml圖簡單**進行演示過程如下:

product.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

abstractfactory.h

#ifndef _abstractfactory_h_ 

#define _abstractfactory_h_

class abstractproducta;

class abstractproductb;

class abstractfactory

; class concretefactory1:public abstractfactory

; class concretefactory2:public abstractfactory

; #endif

兩個cpp實現檔案

#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()

#include"product.h" 

#includeusing namespace std;

abstractproducta::abstractproducta()

abstractproducta::~abstractproducta()

abstractproductb::abstractproductb()

abstractproductb::~abstractproductb()

producta1::producta1()

abstractfactory模式的實現**很簡單,在測試程式中可以看到,當我們要建立一組對

象(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...