重溫設計模式 之004抽象工廠模式

2022-03-09 15:14:53 字數 1190 閱讀 9261

【重溫設計模式系列原始碼】

抽象工廠模式

抽象工廠模式,即abstract factory pattern,提供乙個建立一系列相關或相互依賴物件的介面,

而無須指定它們具體的類;具體的工廠負責實現具體的產品例項。

即工廠方法模式的缺點: 每個工廠只能建立一類產品

組成

關係作用

抽象產品(iproduct)

產品頂級抽象父類

描述產品的公共介面

抽象子產品(ixxproduct)

具體產品類的父類,頂級抽象父類的子類

描述相對具體的抽象產品的公共介面

具體產品(xxproduct)

具體產品類,抽象父類的子類

描述具體的產品

抽象工廠(factory)

具體工廠的父類

描述工廠的公共介面

具體工廠(xxfactory)

具體工廠類,抽象工廠的子類

描述具體工廠

建立產品標準

建立產品抽象類(一系列相關的產品)

建立具體產品類

建立工廠標準

建立生產具體產品的工廠

將具體產品的建立延遲到子類。

新增系列相關產品時,只需要增加具體的工廠和工廠需要生產的具體產品即可。

每個具體工廠類只負責建立對應的產品

抽象工廠模式很難支援新種類產品的變化。

這是因為抽象工廠介面中已經確定了可以被建立的產品集合,

如果需要新增新產品,此時就必須去修改抽象工廠的介面,這樣就涉及到抽象工廠類的以及所有子類的改變,

這樣也就違背了「開發——封閉」原則。

盡信書不如無書,任何脫離實際業務的架構都是在耍流氓;

所謂原則,只是為了更好地為我們服務;

具體如何應用需要我們在業務實踐中靈活把控。

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

這裡講三種模式放在一起說明,是因為三種模式關聯性很強 抽象工廠模式簡單化以後就是工廠方法模式,工廠方法模式再簡單化就是簡單工廠模式 簡單工廠模式並沒有被列入到gof的設計模式中 public class factory 簡單工廠類,實現建立產品物件 class factory return prod...

重溫設計模式之 簡單 工廠模式

定義乙個建立物件的介面,讓其子類自己決定例項化哪乙個工廠類,工廠模式使其建立過程延遲到子類進行。常用場景 多資料庫實現 多種媒介的日誌記錄 uml圖 客戶端 public class client 簡單工廠模式存在乙個問題,如示例中需要增加新的資料庫型別時,需要修改employeedaofactor...

設計模式之工廠 抽象工廠

一 應用場景 工廠模式應用非常廣泛,意在抽象出一層專職管理物件產生以及物件間的關係,讓我們能夠專注於業務開發 1.不用去寫許許多多的new方法,替換實現類還得挨個修改。2.類中不涉及實現類,物件間只存在介面級別的耦合,客戶端呼叫注入實現類即可。由於工廠模式變種非常多,這裡只講一下常用的簡單工廠和抽象...