設計模式系列 抽象工廠模式

2021-07-10 04:53:15 字數 1270 閱讀 7803

抽象工廠模式為建立一組物件提供了一種解決方案。與工廠方法模式相比,抽象工廠模式中的具體工廠不只是建立一種產品,它負責建立一族產品。

例如海爾電器工廠生產的海爾電視機、海爾電冰箱,海爾電器廠1生產電視機型別1和電冰箱型別1,海爾電器廠2生產電視機型別2和電冰箱型別2,這個時候就必須要用抽象工廠模式了,工廠方法模式已經無法處理這種情況了。

體現了:依賴倒置,開放封閉,單一職責,介面隔離,迪公尺特法則,黎克特制替換原則。體現了所有的設計原則。

抽象類和繼承——依賴倒置

抽象類——開閉原則

類間解耦——迪公尺特原則

抽象類——黎克特制替換原則

抽象工廠模式主要通過增加抽象層來實現解耦。這個是這個模式的核心。

系統中有多於乙個的產品族。

說明:

(1)abstractfactory:它宣告了一組用於建立一族產品的方法,每乙個方法對應一種產品。

(2)concretefactory:它實現了在抽象工廠中宣告的建立產品的方法,生成一組具體的產品,這些產品構成了乙個產品族,每乙個產品都位於某個產品等級結構中。

(3)abstractproduct:它為每種產品宣告介面,在抽象產品中宣告了產品所具有的業務方法。

(4)concreteproduct:它定義具體工廠生產的具體產品物件,實現在抽象介面中宣告的業務方法。

**略,簡單

抽象工廠模式與工廠方法模式區別

抽象工廠模式與工廠方法模式的區別在於,工廠方法模式針對的是乙個產品等級結構,而抽象工廠模式需要面對多個產品等級結構(即是面向產品族的),乙個工廠等級結構可以負責多個不同產品等級結構中的產品物件的建立。當乙個工廠等級結構可以建立出分屬不同產品等級結構的乙個產品族中的所有物件時,抽象工廠模式比工廠方法模式更為簡單、更有效。

優點 1. 抽象工廠模式為建立一組物件(物件族)提供了一種解決方案。

2. 增加新的產品族很容易,符合開閉原則

缺點 1. 增加新的產品結構很麻煩,需要對原有系統進行較大的修改,甚至需要修改抽象層**。

介面**庫。

手機遊戲軟體。可以支援塞班、android、ios、wp系統。針對不同的系統提供不同的遊戲控制類和遊戲介面控制類。

設計模式系列 抽象工廠模式

如圖,factorya專心負責生產producta,factoryb專心負責生產productb,factorya和factoryb之間沒有關係 如果到了後期,如果需要生產productc時,我們則可以建立乙個factoryc工廠類,該類專心負責生產productc類產品。由於factorya fa...

設計模式系列 抽象工廠模式

公司最近專案不忙,午間小憩之後,小二找到c哥攀談了起來。c哥,忙啥呢?也沒忙啥,就是隨便看看。哦哦,我最近也不怎麼忙。你上次給我講的工廠模式,受益匪淺啊!哈哈,是嘛!其實你不知道,還有抽象工廠模式呢!抽象工廠模式?願聞其詳。好,反正最近也不忙,就給你講講吧。小二,你知道,奧迪a4與a6,他們使用的輪...

設計模式系列 抽象工廠模式

抽象工廠是基於簡單工廠發展而來的,通過抽象工廠,我們可以建立多種型別的工廠,並且依據具體業務需求而在具體工廠裡面進行任意拼裝組合。在現實世界中,汽車製作行業有各種各樣的工廠,每個工廠都需要具有生產輪胎 汽車引擎等部件的能力,但是針對具體的工廠,每個部件的生產又各不相同,所有在軟體開發過程中,當我們為...