建立性模式有五種:
1.工廠模式
①簡單工廠模式(經常被用到,不屬於gof23種設計模式)
②工廠方法模式
③抽象工廠模式
2.建造者模式
3.原型模式
4.單例模式
抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的一種形態。抽象工廠模式是指當有多個抽象角色時,使用的一種工廠模式。抽象工廠模式可以向客戶端提供乙個介面,使客戶端在不必指定產品的具體的情況下,建立多個產品族中的產品物件。根據黎克特制替換原則,任何接受父型別的地方,都應當能夠接受子型別。因此,實際上系統所需要的,僅僅是型別與這些抽象產品角色相同的一些例項,而不是這些抽象產品的例項。換言之,也就是這些抽象產品的具體子類的例項。工廠類負責建立抽象產品的具體子類的例項。這個模式很少被用到了解即可。
abstractfactory(抽象工廠):宣告乙個介面,這個介面中包含建立抽象產品物件的方法。
concretefactory(具體工廠):實現建立具體產品物件的方法。
abstractproduct(抽象產品):宣告乙個介面,這個介面包含產品物件型別。
concreteproduct(具體產品):定義乙個產品物件,這個產品物件是由相關的具體工廠建立的。
優點:
1、抽象工廠模式隔離了具體類的生產,使得客戶並不需要知道什麼被建立。
2、當乙個產品族中的多個物件被設計成一起工作時,它能保證客戶端始終只使用同乙個產品族中的物件。
3、增加新的具體工廠和產品族很方便,無須修改已有系統,符合「開閉原則」。
缺點:
增加新的產品等級結構很複雜,需要修改抽象工廠和所有的具體工廠類,對「開閉原則」的支援呈現傾斜性。
抽象工廠可以在乙個工廠裡聚合多個同類產品,而不是只建立一種物件。這樣就可以有效地減少工廠類的個數。
設計模式 建立型 抽象工廠模式
有點複雜。一般的工廠模式下,每個實體類都需要乙個對應的工廠,當實體類過多時工廠的數量也會變多。當實體類還有子類時,我們需要的工廠就更多了。抽象工廠模式是將所有工廠的共性抽象出來 public inte ce animalfactory 生產母狗和母貓 public class femaleanima...
設計模式 建立型 抽象工廠
pragma once ifndef abstractfactory h define abstractfactory h 抽象基類abstractproducta,代表產品a 的抽象 class abstractproducta virtual abstractproducta 派生類concre...
建立型設計模式 抽象工廠
抽象工廠模式 abstractfactory 每乙個模式都是針對一定問題的解決方案,工廠方法模式針對的是乙個產品等級結構 而抽象工廠模式針對的是多個產品等級結果。產品族 是指位於不同產品等級結構中,功能相關聯的產品組成的家族。一般是位於不同的等級結構中的相同位置上。每乙個產品等級結構中有多少個具體的...