設計模式利劍三 抽象工廠方法模型

2021-05-22 13:28:46 字數 677 閱讀 8952

優    點:

1、封裝性,每個產品的實現類不是高層模組要關心的,他們關心的是介面,抽象

2、產品族內的約束為非公開狀態,具體的產品族內約束在工廠內實現

缺    點:抽象工廠模式的最大缺點就是產品族擴充套件非常困難,但是產品等級非常容易擴充

使用場景:乙個物件族(或者一組沒有任何關係的物件)有相同的約束,則可以使用抽象工廠模式

使用體會:其最大精華在於遮蔽不同物件的差異,對高層做到一致化

實踐案例:

先來看看抽象工廠模式定義的uml圖:

經過以上設計以後,很明顯將工廠分成了男人工廠與女人工廠,而乙個工廠能夠製造黑人、白人、黃種人,所以在乙個產品多樣化的時候,如何進行分類,如何將不同之處拿出來設計成工廠是乙個比較有藝術性的活。想想我們在工廠模型中設計的買煤氣嗎?如果有一天科技發達了,我們的煤氣不僅僅是天然氣了,好包括外太空採過來的可燃隕石,還有地球兩級的可燃冰,那如果繼續讓以前的物業來處理這個事情,就明顯與職責單一化原則有衝突,所以我們根據抽象工廠模型進行抽象,設計了如下的模型:

這下好了,租戶如果想要可燃冰,那麼只需要對可燃冰物業說:給我教a公司的煤氣過來,則我們自然會收到可燃冰煤氣,這樣設計是否非常的簡單?但是看看這種模式的不合理之處,如果我再想增加乙個d煤氣公司煤氣,那麼我要修改很多地方,所有物業公司相關的介面以及子類都需要新增叫d公司煤氣的方法。

來看看抽象工廠實現的**:

設計模式《三》 抽象工廠方法

工廠方法的絕點是只能生成一類產品,不同生成不同類別的產品,而抽象工廠便可以解決此問題。工廠方法模式和抽象工廠模式不好分清楚,他們的區別如下 工廠方法模式 乙個抽象產品類,可以派生出多個具體產品類。乙個抽象工廠類,可以派生出多個具體工廠類。每個具體工廠類只能建立乙個具體產品類的例項。抽象工廠模式 多個...

設計模式 簡單工廠 工廠方法 抽象工廠方法模式

簡介 工廠方法模式分為 簡單工廠模式 工廠方法模式 抽象工廠方法模式 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的實 uml圖示例 public class ...

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

在業務邏輯中往往有需要建立物件的需求 如何將這部分邏輯封裝並且使得其能個適應於頻繁的變化呢?簡單工廠模式 將物件建立邏輯封裝隔離在簡單工廠類的方法中。簡單工廠的常見實現方式 1 簡單工廠類以及其建立物件的靜態方法 其客戶可以直接呼叫該類的靜態方法。2 簡單工廠類以及其建立物件的成員方法 其客戶 需要...