工廠模式的定義:定義乙個建立產品物件的工廠介面,將產品物件的實際建立工作推遲到具體子工廠類當中。這滿足建立型模式中所要求的「建立與使用相分離」的特點。
按實際業務場景劃分,工廠模式有 3 種不同的實現方式,分別是簡單工廠模式、工廠方法模式和抽象工廠模式。
我們把被建立的物件稱為「產品」,把建立產品的物件稱為「工廠」。如果要建立的產品不多,只要乙個工廠類就可以完成,這種模式叫「簡單工廠模式」。
在簡單工廠模式中建立例項的方法通常為靜態(static)方法,因此簡單工廠模式(****** factory pattern)又叫作靜態工廠方法模式(static factory method pattern)。
簡單來說,簡單工廠模式有乙個具體的工廠類,可以生成多個不同的產品,屬於建立型設計模式。簡單工廠模式不在 gof 23 種設計模式之列。
簡單工廠模式每增加乙個產品就要增加乙個具體產品類和乙個對應的具體工廠類,這增加了系統的複雜度,違背了「開閉原則」。
「工廠方法模式」是對簡單工廠模式的進一步抽象化,其好處是可以使系統在不修改原來**的情況下引進新的產品,即滿足開閉原則。優點:
缺點:
應用場景
對於產品種類相對較少的情況,考慮使用簡單工廠模式。使用簡單工廠模式的客戶端只需要傳入工廠類的引數,不需要關心如何建立物件的邏輯,可以很方便地建立所需產品。
簡單工廠模式的主要角色如下:
public
class
client
//抽象產品
public
inte***ce
product
//具體產品:producta
static
class
concreteproduct1
implements
product
}//具體產品:productb
static
class
concreteproduct2
implements
product
}final
class
const
static
class
******factory
return null;}}
}
工廠模式 簡單工廠
簡單工廠其實並不是乙個設計模式,反而比較像一種程式設計習慣。我個人的這樣總結簡單工廠 建立乙個類,封裝建立物件的 故事 現在我要開一家披薩店,叫bbk 必敗客 披薩,賣很多種披薩 芝士披薩 榴蓮披薩等等,我有乙個orderpizza string type 方法,根據客戶傳來的type來提供不同的披...
工廠模式 簡單工廠
工廠 處理建立物件的細節。目的 將例項化具體類的 從應用中抽離,或者封裝起來,可以避免干擾應用的其他部分。簡單工廠 簡單工廠其實不是乙個設計模式,反而像一種程式設計習慣。產品實現 desc 產品a public inte ce a class a1 implements a override pub...
簡單工廠模式,工廠模式,抽象工廠模式
三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...