設計模式筆記 工廠模式

2022-07-13 16:00:13 字數 1086 閱讀 3688

工廠模式主要是為建立物件提供過度介面,以便將建立物件的具體過程隔離,從而達到提高靈活性的目的

分類一:簡單工廠模式,工廠方法模式,抽象工廠模式  逐步抽象

分類二:工廠方法模式(包括簡單工廠模式),抽象工廠模式

1.簡單工廠模式又稱靜態工廠方法模式,存在目的:定義乙個用於建立物件的介面。

組成:工廠類角色:核心,含有一定商業邏輯和邏輯判斷。

抽象產品角色:由產品繼承的父類或者實現的介面。

具體產品角色:工廠類所建立的物件是該角色例項。

缺點,不是很好的符合開閉原則,存在「上帝類」

開閉原則:對擴充套件開放,對修改封閉。

2.工廠方法模式,去掉了簡單工廠模式中工廠方法的靜態屬性,使它可以被子類繼承,這樣工廠方法上的壓力可以由不同的子類來分擔。

組成:抽象工廠角色:工廠方法模式核心,與應用程式無關。

具體工廠角色:含有和具體業務邏輯有關的**。由應用程式呼叫以建立對應的具體產品的物件。

抽象產品角色:他是具體的產品繼承的父類或者實現的介面。

具體產品角色:具體工廠角色所建立物件就是此角色的例項。

使用繼承自抽象工廠的多個子類來替代上帝類。缺點是類會越來越多,因此可以使用和工廠方法相結合:對於產品樹上的類似的種類(一般是樹的葉子中互為兄弟的)使用簡單工廠模式來實現。

使用工廠的情況:

1.當客戶程式不需要知道使用物件的建立過程。

2.客戶程式使用的物件變動的可能,或者根本就不知道使用哪乙個具體的物件。

3.抽象工廠模式, 抽象工廠模式與和工廠方法模式的區別在於需要建立物件複雜程度上。抽象工廠模式是工廠模式中最為抽象,最具有一般性的。

抽象工廠的用意:給客戶端提供乙個介面,可以建立多個產品族中的產品物件。

滿足條件:

1.系統中有多個產品族,且系統一次只能消費其中一族產品。

2.同屬於同乙個產品族產品一起使用

組成:抽象工廠角色:同上

具體工廠角色:同上

抽象產品角色:同上

具體產品角色:同上

個人對抽象工廠的理解:將多個產品分成產品族,然後再進行抽象,然後在抽象工廠中進行生產抽象的產品,那麼其具體具體工廠可以根據需求實現對應產品族的具體產品了。這樣應用更加廣泛

設計模式學習筆記(工廠模式)

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠模式使乙個類的例項化延遲到其子類。c 中的工廠方法 工廠基類中所定義的建立產品的函式 都是虛函式並且常常是純虛函式。product 工廠基類 定義工廠方法所建立的介面 concreteproduct 工廠具體類 實現product介面 cre...

設計模式真香筆記 工廠模式

工廠模式 是為了將物件的建立和呼叫者分開,實現解耦,也就是將繁瑣的物件的建立由工廠來實現。簡單工廠也叫靜態工廠,通過簡單工廠類的靜態方法傳入不同的引數來返回不同的所需要的物件。缺點 雖然工廠不需要建立例項來呼叫方法,但是不同通過繼承來改變建立方法的行為。新增加的物件 需要修改工廠類的 來實現。實現 ...

設計模式學習筆記 工廠模式

簡單工廠 將建立類的 剝離出來,放到乙個類裡面,通過例項化這個類去獲取想要的物件。先將多個類的物件儲存到map裡,然後通過get方法從裡面獲取 工廠方法 基於介面去實現多個不同的方法,類繼承自介面,然後重寫方法 類裡面再建立乙個靜態類,靜態類裡從父類獲取對應的方法的邏輯,父類裡時多種不同的實現。抽象...