抽象工廠模式與工廠模式基本類似,只是新建立了乙個抽象工廠類和生成工廠類,可以理解為將工廠也作為一種產品生成,就如同形狀工廠生成不同形狀一樣,生成工廠類生成不同的工廠:
//各種形狀
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 是圍繞乙個超級工廠建立其他工廠。該超級工廠又稱為其他工廠的工廠。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指定它們的類。每個生成的工廠都能按照工廠模式...