設計模式學習(C 實現)2 抽象工廠模式

2021-08-08 11:54:44 字數 1077 閱讀 6442

抽象工廠模式與工廠模式基本類似,只是新建立了乙個抽象工廠類和生成工廠類,可以理解為將工廠也作為一種產品生成,就如同形狀工廠生成不同形狀一樣,生成工廠類生成不同的工廠:

//各種形狀

class

shape

;class

circle

:public shape};

class

rectangle1

:public shape };

class

square

:public shape };

//各種顏色

class

color

;class

red:

public color };

class

green

:public color };

class

blue

:public color };

//抽象工廠衍生出兩種工廠

class

abstractfactory

;class

colo***ctory

:public abstractfactory

shape*

getshape

(const string &pattern)

const override };

class

shapefactory

:public abstractfactory

color *

getcolor

(const string &pattern)

const override };

//工廠生成類生成不同的工廠

class

factoryproducer

abstractfactory*

getcolo***ctory()

const};

intmain()

輸出:

this is a circle

請按任意鍵繼續. . .

C 實現設計模式 抽象工廠模式

感覺抽象工廠模式有點像你去買電腦的時候,先告訴賣電腦的你要買聯想的,然後再告訴賣電腦的你要個滑鼠,最後你喜提聯想的滑鼠回家了。這裡也感謝菜鳥教程,提供免費的學習資料。優點 當乙個產品族中的多個物件被設計成一起工作時,它能保證客戶端始終只使用同乙個產品族中的物件。缺點 產品族擴充套件非常困難,要增加乙...

設計模式2 抽象工廠

建立多個工廠類,這樣一旦需要增加新的功能,直接增加新的工廠類就可以了 介面public inte ce sender 實現類mail public class mailsender implements sender 實現類sms public class smssender implements ...

設計模式(2) 抽象工廠模式

抽象工廠模式 abstract factory pattern 是圍繞乙個超級工廠建立其他工廠。該超級工廠又稱為其他工廠的工廠。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指定它們的類。每個生成的工廠都能按照工廠模式...