設計模式之 工廠模式 C

2021-06-27 02:02:04 字數 1011 閱讀 3599

主要介紹抽象工廠模式,以及工廠方法和抽象工廠之間的區別:

抽象工廠允許客戶使用抽象的介面來建立一組相關的產品,而無需知道實際產出的具體產品是什麼。這樣,客戶就從具體的產品中解耦出來。

抽象工廠類圖如下所示:

(2)抽象工廠vs工廠方法

抽象工廠——提供乙個介面,用於建立相關或依賴物件的家族,而不需要明確指定具體類。

工廠方法——定義了乙個建立物件的介面,但由子類決定要例項化的類是哪乙個。工廠方法讓類把例項化推遲到子類中。

麵包店對應的工廠方法模式類圖如下所示:

麵包店對應的抽象工廠模式類圖如下圖所示:

(3)工廠模式總結:

a:oo原則

多用組合,少用繼承。

針對介面程式設計,不針對實現程式設計。

為互動物件之間的松耦合設計而努力。

類應該對擴充套件開放,對修改關閉。

依賴抽象,不要依賴具體類。

b:所有的工廠都是用來封裝物件的建立。

簡單工廠,雖然不是真正的設計模式,但仍然不失為乙個簡單的方法,可以將客戶程式從具體類解耦。

工廠方法使用繼承:把物件的建立委託給子類,子類實現工廠方法來建立物件。

抽象工廠使用物件組合:物件的建立被實現在工廠介面所暴漏出來的方法中。

所有的工廠模式都通過減少對應用程式的具體類之間的依賴促進松耦合。

c:工廠方法允許類將例項化延遲到子類中執行。

抽象工廠建立相關的物件家族,而不需要依賴它們的具體類。

依賴倒置原則指導我們避免依賴具體型別,而要盡量依賴抽象。

工廠能夠幫助我們針對抽象程式設計,而不是針對具體類程式設計。

c 設計模式 之 工廠模式之 工廠模式

1 uml類圖 實現和依賴關係 實現 sportfactory jeepfactory hatchbackfactory 實現 ifactory 介面 sportcar jeepcar hatchbackcar 實現 icar 介面 依賴 ifactory 依賴 icar sportfactory ...

c 設計模式之 工廠模式

使用工廠的客戶根本不知道具體的類.工廠的使用者建立乙個基類的物件.但由子類決定例項化哪個.這就允許我們服從子類的例項化,但是呼叫都不知道哪個物件被建立.來自源 wiki include class button class osxbutton public button class windowsb...

設計模式之工廠模式 c

我們可以從麵包房購買到提拉公尺蘇 拿破崙,當他們新出一款抹茶蛋糕時,收銀台是不會被拆掉的,還是需要花錢購買 工廠模式就是為我們提供了建立物件的統一介面,新增的型別不會影響到介面 工廠模式包含三種 靜態工廠 多型工廠 抽象工廠,它屬於構造型設計模式 靜態工廠使用簡單,適合於變化較少的情況 namesp...