【重溫設計模式系列原始碼】
抽象工廠模式
抽象工廠模式,即abstract factory pattern,提供乙個建立一系列
相關或相互依賴物件的介面,而無須指定它們具體的類;具體的工廠負責實現具體的產品例項。
即工廠方法模式的缺點: 每個工廠只能建立一類產品組成
關係作用
抽象產品(iproduct)
產品頂級抽象父類
描述產品的公共介面
抽象子產品(ixxproduct)
具體產品類的父類,頂級抽象父類的子類
描述相對具體的抽象產品的公共介面
具體產品(xxproduct)
具體產品類,抽象父類的子類
描述具體的產品
抽象工廠(factory)
具體工廠的父類
描述工廠的公共介面
具體工廠(xxfactory)
具體工廠類,抽象工廠的子類
描述具體工廠
建立產品標準
建立產品抽象類(一系列相關的產品)
建立具體產品類
建立工廠標準
建立生產具體產品的工廠
將具體產品的建立延遲到子類。
新增系列相關產品時,只需要增加具體的工廠和工廠需要生產的具體產品即可。
每個具體工廠類只負責建立對應的產品
抽象工廠模式很難支援新種類產品的變化。這是因為抽象工廠介面中已經確定了可以被建立的產品集合,
如果需要新增新產品,此時就必須去修改抽象工廠的介面,這樣就涉及到抽象工廠類的以及所有子類的改變,
這樣也就違背了「開發——封閉」原則。
盡信書不如無書,任何脫離實際業務的架構都是在耍流氓;所謂原則,只是為了更好地為我們服務;
具體如何應用需要我們在業務實踐中靈活把控。
設計模式之簡單工廠 工廠方法模式 抽象工廠模式
這裡講三種模式放在一起說明,是因為三種模式關聯性很強 抽象工廠模式簡單化以後就是工廠方法模式,工廠方法模式再簡單化就是簡單工廠模式 簡單工廠模式並沒有被列入到gof的設計模式中 public class factory 簡單工廠類,實現建立產品物件 class factory return prod...
重溫設計模式之 簡單 工廠模式
定義乙個建立物件的介面,讓其子類自己決定例項化哪乙個工廠類,工廠模式使其建立過程延遲到子類進行。常用場景 多資料庫實現 多種媒介的日誌記錄 uml圖 客戶端 public class client 簡單工廠模式存在乙個問題,如示例中需要增加新的資料庫型別時,需要修改employeedaofactor...
設計模式之工廠 抽象工廠
一 應用場景 工廠模式應用非常廣泛,意在抽象出一層專職管理物件產生以及物件間的關係,讓我們能夠專注於業務開發 1.不用去寫許許多多的new方法,替換實現類還得挨個修改。2.類中不涉及實現類,物件間只存在介面級別的耦合,客戶端呼叫注入實現類即可。由於工廠模式變種非常多,這裡只講一下常用的簡單工廠和抽象...