1. 程式人生 > >簡單工廠模式,工廠模式和抽象工廠的區別

簡單工廠模式,工廠模式和抽象工廠的區別

簡單工廠模式

簡單工廠模式不是23種裡的一種,簡而言之,就是有一個專門生產某個產品的類。
比如下圖中的滑鼠工廠,專業生產滑鼠,給引數0,生產戴爾滑鼠,給引數1,生產惠普滑鼠。

1

工廠模式

工廠模式也就是滑鼠工廠是個父類,有生產滑鼠這個介面。
戴爾滑鼠工廠,惠普滑鼠工廠繼承它,可以分別生產戴爾滑鼠,惠普滑鼠。
生產哪種滑鼠不再由引數決定,而是建立滑鼠工廠時,由戴爾滑鼠工廠建立。
後續直接呼叫滑鼠工廠.生產滑鼠()即可

1

抽象工廠模式

抽象工廠模式也就是不僅生產滑鼠,同時生產鍵盤。
也就是PC廠商是個父類,有生產滑鼠,生產鍵盤兩個介面。
戴爾工廠,惠普工廠繼承它,可以分別生產戴爾滑鼠+戴爾鍵盤,和惠普滑鼠+惠普鍵盤。
建立工廠時,由戴爾工廠建立。
後續工廠.生產滑鼠()則生產戴爾滑鼠,工廠.生產鍵盤()則生產戴爾鍵盤。

1

在抽象工廠模式中,假設我們需要增加一個工廠

假設我們增加華碩工廠,則我們需要增加華碩工廠,和戴爾工廠一樣,繼承PC廠商。
之後建立華碩滑鼠,繼承滑鼠類。建立華碩鍵盤,繼承鍵盤類。
即可。

1

在抽象工廠模式中,假設我們需要增加一個產品

假設我們增加耳麥這個產品,則首先我們需要增加耳麥這個父類,再加上戴爾耳麥,惠普耳麥這兩個子類。
之後在PC廠商這個父類中,增加生產耳麥的介面。最後在戴爾工廠,惠普工廠這兩個類中,分別實現生產戴爾耳麥,惠普耳麥的功能。
以上。

1

除了上面轉載的部落格,這篇部落格我覺得講的也還可以,在這裡mark一下:http://zyjustin9.iteye.com/blog/2094960

相關推薦

簡單工廠模式工廠模式抽象工廠區別

簡單工廠模式簡單工廠模式不是23種裡的一種,簡而言之,就是有一個專門生產某個產品的類。比如下圖中的滑鼠工廠,專業生產滑鼠,給引數0,生產戴爾滑鼠,給引數1,生產惠普滑鼠。工廠模式工廠模式也就是滑鼠工廠是個父類,有生產滑鼠這個介面。戴爾滑鼠工廠,惠普滑鼠工廠繼承它,可以分別生產

簡單工廠模式工廠模式抽象工廠模式區別

下面例子中滑鼠,鍵盤,耳麥為產品,惠普,戴爾為工廠。 簡單工廠模式(面向單個產品,不符合開閉原則,要點:產品面向介面) 簡單工廠模式不是 23 種裡的一種,簡而言之,就是有一個專門生產某個產品的類。 比如下圖中的滑鼠工廠,專業生產滑鼠,給引數 0,生產戴爾滑鼠,給引數

簡單工廠工廠模式抽象工廠

  工廠可以分為三種:簡單工廠、工廠模式和抽象工廠,三者的關係是遞進的,以做包子為例,剛開始只有兩種包子:豆腐包和牛肉包,可以使用簡單工廠(或者叫靜態工廠)來解決,隨著包子種類的越來越多,發現沒新增一種包子,就需要改工廠類,擴充套件性太差,因此出現了工廠模式,提取一個公共的做包子介面,然後針對每一種包子建一個

簡單介紹工廠模式(靜態工廠抽象工廠)

註明 : 以下整理的資料來源於實驗樓網站.      工廠模式(Factory Pattern)的意義就跟它的名字一樣,在面向物件程式設計中,工廠通常是一個用來建立其他物件的物件。工廠模式根據不同的引數來實現不同的分配方案和建立物件。    

java 設計模式01之簡單工廠抽象工廠模式

總結一下: 簡單工廠:工廠根據條件去建立對應的具體實現物件,如果需要增加新的物件,就必須修改建立物件的介面,增加判斷條件,另外可能建立的物件下面的方法也可能有其他物件去實現相同的功能,造成混亂,比如,amd可以造cpu,也可以造網絡卡,不能建立了一個amd造cpu的

設計模式(四):從“兵工廠”中探索簡單工廠工廠方法抽象工廠模式

前面陸陸續續的更新了三篇關於設計模式的部落格,是關於“策略模式”、“觀察者模式”、“裝飾者模式”的,今天這篇部落格就從“兵工廠”中來探索一下“工廠模式”(Factory Pattern)。“工廠模式”又可以分為“簡單工廠模式”(Simple Factory Pattern)、“工廠方法模式”(Factory

簡單工廠模式工廠模式抽象工廠模式區別及優缺點

各位小夥伴好,今天給大家主要介紹一下簡單工廠模式、工廠模式和抽象工廠模式的區別及各自的優缺點。 (本文實現語言為Python3) 【前言】 眾所周知今天所講的內容是設計模式的一類;對於設計模式這個概念,我想首先請大家問問自己:1、什麼是設計模式 2、我們為什麼要了解並學習設計模式? 從我上學的時候我相信大家跟

關於js的設計模式簡單工廠模式構造函數模式原型模式混合模式動態模式

nod nodejs 重新 作用域 this 一次 無法 typeof 訪問 <1>工廠模式 簡單來說就是封裝後的代碼,簡單的工廠模式是很好理解的,關於它的作用,就是利用面向對象的方法,把一些對象封裝,使一些占用空間多的,重復的代碼封裝起來。實現方法非常簡單,也

走進設計模式的世界4:我不是你,但是大家都把我當成你-工廠模式抽象工廠模式

工廠模式和抽象工廠模式: 工廠方法模式:定義了一個建立物件的介面,但由子類決定要例項化的類是哪一個。工廠方法讓類把例項化推遲到之類。 抽象工廠模式:提供一個介面,用於建立相關或以來物件的家族,而不需要明確指定具體類。 解釋:工廠方法使用繼承把物件的建立交給之類,子類實現工廠方法來建立

JAVA設計模式-工廠抽象工廠

摘抄至https://www.jianshu.com/p/3c3f6c95d7e7 本文講解GOF-23種設計模式其中的工廠方法模式和抽象工廠模式。 由於本人愛國情懷高漲,所以本文都以長安汽車作為示例,閱讀本文需要對長安汽車有一定了解。 長安悅翔V7:長安旗下一款價效比超高的緊湊型家用轎

工廠模式 抽象工廠模式

1:工廠模式 :就是建立一個工廠類,對實現了同一介面(Product)的一些類進行例項的建立。    優點:        1、一個呼叫者如果想建立一個物件,只要知道其名稱就可以了。        2、擴充套件性高,如果想增加一個產品,只要擴充套件一個工廠類就可以。   

C++設計模式——工廠方法模式抽象工廠方法模式

一、工廠方法模式 上面的簡單工廠模式的缺點是當新增產品的時候就要去修改工廠的類,這就違反了開放封閉原則,(類、模組、函式)可以擴充套件,但是不可以修改,於是,就出現了工廠方法模式。所謂工廠方法模式,是指定義一個用於建立物件的介面,讓子類決定例項化哪一個類。 #d

建造者模式抽象工廠區別

1 建造者模式是把物件的建立分散開來,比如幾個函式  比如 interface builderDemo { void bulidHead(); void bulidBody(); void

工廠模式抽象工廠模式以及在Android中的應用

《Android原始碼設計模式解析與實戰》第5章第6章讀書筆記 工廠方法模式介紹 工廠方法模式(Factory Pattern)建立型設計模式之一,在平時開發中或多或少都會使用它,如Android中的Activity裡的各個生命週期方法,以onC

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

工廠模式(Factory Pattern)的意義就跟它的名字一樣,在面向物件程式設計中,工廠通常是一個用來建立其他物件的物件。工廠模式根據不同的引數來實現不同的分配方案和建立物件。在工廠模式中,我們在建立物件時不會對客戶端暴露建立邏輯,並且是通過使用一個共同的介面來指向新建立

java中幾種設計模式(單例模式介面卡模式簡單工廠模式

1、單例模式:也分餓漢式單例模式(建立物件)與懶漢式單例模式(未建立物件)程式碼實現:餓漢式單例模式:懶漢式單例模式:2、介面卡模式:介面:實現介面的類:實現介面某個方法的類:3、簡單工廠模式:介面:類1:類2:工廠類:測試類:

工廠模式抽象工廠模式總結與比較(屌絲專用)

屌絲有了造錢工廠,神馬都是浮雲。 工廠模式(工廠方法模式): 一個抽象Money(產品類)派生出BlueMoney、RedMoney(多個具體產品類) 一個抽象MoneyFactory(工廠類)派生出BlueMoneyFactory、MoneyFactory(多個具體工廠

c++ 設計模式9 (Abstract Factory 抽象工廠模式

構建 數據庫 strac 無需 div exec oracl dfa tle 5.2 抽象工廠模式 動機:在軟件系統中,經常面臨著“一系列相互依賴的對象”的創建工作;同時,由於需求的變化,往往存在更多系列對象的創建工作。 代碼示例: 實現利用數據庫的業務邏輯,支持多數據

Java設計模式工廠模式(二):抽象工廠模式

mar 模式 blank http left taxi ref www. app 2碳依5FVL冒傲3http://t.docin.com/etw488 am懦7鈉N山段9慌Q闌http://shequ.docin.com/ipu5657 iK1諾5N鍛認EUK剖嘲肆h

【設計模式學習筆記】 之 抽象工廠模式

etc 但是 應該 err actor 增加 都是 困難 之間 簡介: 抽象工廠模式提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。 舉例:每個汽車4s店和某個品牌工廠之間的關系,每個汽車4s店只會賣同一品牌的汽車,但是如果這一品牌汽車銷量不好,效益不佳