建立型模式之 工廠模式

2021-08-21 13:59:43 字數 1083 閱讀 3864

設計模式中我們將工廠模式分了三種:簡單工廠模式,工廠方法模式,抽象工廠模式。其實我們可以看作兩類,也就是工廠方法模式和抽喜工廠模式,(他們兩個都屬於建立型模式,就寫在一起對照參考)將簡單工廠模式看成是工廠方法模式中的乙個特例。下面我們來對比工廠方法模式和抽象工廠模式。

首先我們以乙個例子為參考,看一下工廠方法模式的結構圖

我們用工人種蔬菜這個例子,最開始,規模小只有一類蔬菜,可以用簡單工廠模式(也稱靜態工廠方法模式),只需要減少工人的工作量,下達種植的命令就行了。

但是這個模式如果出現新的型別產品,每增加一種,都要修改原有的工廠類中的**,違背了開閉原則。

隨著種植場的發展,新增加一種植物型別,與第一種植物型別不相同,就需要兩個工廠來分別進行種植,乙個工廠負責一種型別

為了解決簡單工廠的違背開閉原則,工廠方法模式來了,它去掉了簡單模式中的靜態屬性,使工廠可被子類繼承這樣工廠的壓力由他的工廠子類來分擔

但是問題又出現了,雖然分擔了壓力,但是如果我們的種類過多那麼,就會出現很多的工廠物件,這會影響我們的程式執行速度。

上面我們說了簡單工廠模式和工廠方法模式

伴隨時代進步,科學發展,出現了轉基因蔬菜,種植場開始種植兩種不同方向的農作物,在我們的蔬菜這個抽象類上面又加了一層次,但是我們無法把它作為乙個層來解決,所以採用抽象工廠的方式

當每個抽象產品都有多於乙個的具體子類的時候(基因有兩種,蔬菜型別有兩種),工廠怎麼知道例項化哪乙個子類呢?抽象工廠提供了兩個具體工廠:轉基因和非轉基因工廠,對應了這兩個具體產品角色,每乙個具體工廠只負責乙個產品角色的例項化,每乙個具體工廠只負責建立抽象產品的乙個具體子類的例項。

無論簡單工廠模式、工廠方法模式、還是抽象工廠模式,他們都屬於工廠模式,形式上極為相似,最終目的都是通過增加層次來減少耦合。這也就是為什麼他們屬於建立型模式。

設計模式之建立型模式 工廠模式

工廠模式 factory pattern 主要用於選擇,根據客戶不同的要求,使用同乙個介面實現不同的功能,然後使用工廠類來判斷使用哪個例項介面,工廠模式是乙個最佳的建立物件的模式。工廠模式的優點 1 在呼叫者只需要知道需要建立的名稱就能夠建立乙個物件,而不用知道產品功能的具體實現,簡化了呼叫者的工作...

建立型模式之簡單工廠模式

複習用,不適合初學。複習用,不適合初學。複習用,不適合初學。1.定義 factory pattern 簡單工廠模式又稱為靜態 static 工廠模式。在簡單工廠模式中,可以根據引數的不同返回不同類的例項。簡單工廠模式專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。2.角色 f...

建立型模式之工廠模式實現

工廠方法模式同樣屬於類的建立型模式又被稱為多型工廠模式 工廠方法模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為乙個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得工廠方法模式可以使系統在不修改具體工廠...