【重溫設計模式系列原始碼】
簡單工廠模式
簡單工廠模式又叫靜態方法模式(因為工廠類定義了乙個靜態方法)。在現實生活中,工廠是生產產品的,
同樣的,在設計模式中,乙個負責生產「物件」產品的類就是工廠類。
將 「類例項化的操作」 和 「使用物件的操作」分開,讓使用者不用知道具體引數就可以例項化出所需要的「產品」類。言外意:
將 鉛筆的生產 和 使用鉛筆 分開, 使用者只關注如何使用鉛筆,而並不關注鉛筆是如何生產的。
即使用者可直接消費產品而不需要知道其生產的細節。組成
關係作用
產品標準
具體產品的父類
描述產品的公共介面
具體產品
產品標準的具體實現類
描述生產的具體產品
工廠類被外界呼叫
根據傳入的不同引數而建立不同具體產品類的例項
建立產品標準 (描述產品的公共介面)
建立具體產品類 (描述生產的具體產品)
建立工廠類(通過建立靜態方法根據傳入不同引數從而建立不同具體產品類的例項)
外界通過呼叫工廠類的靜態方法,根據傳入不同引數從而建立不同具體產品類的例項
將 建立產品的工作 與 使用產品的工作 分離開來,實現了解耦。將 初始化例項的工作 放在了工廠類進行,容易進行維護。
面向介面程式設計,而不是物件導向。
工廠類集中了所有例項(產品)的建立邏輯,一旦工廠類不能正常工作,整個系統都將受到影響。一旦增加新的產品,就不得不修改工廠類的邏輯,違背了「開閉原則」。
盡信書不如無書,任何脫離實際業務的架構都是在耍流氓;所謂原則,只是為了更好地為我們服務;
具體如何應用需要我們在業務實踐中靈活把控。
重溫設計模式之 簡單 工廠模式
定義乙個建立物件的介面,讓其子類自己決定例項化哪乙個工廠類,工廠模式使其建立過程延遲到子類進行。常用場景 多資料庫實現 多種媒介的日誌記錄 uml圖 客戶端 public class client 簡單工廠模式存在乙個問題,如示例中需要增加新的資料庫型別時,需要修改employeedaofactor...
設計模式之簡單工廠 工廠方法模式 抽象工廠模式
這裡講三種模式放在一起說明,是因為三種模式關聯性很強 抽象工廠模式簡單化以後就是工廠方法模式,工廠方法模式再簡單化就是簡單工廠模式 簡單工廠模式並沒有被列入到gof的設計模式中 public class factory 簡單工廠類,實現建立產品物件 class factory return prod...
重溫設計模式 之004抽象工廠模式
重溫設計模式系列原始碼 抽象工廠模式 抽象工廠模式,即abstract factory pattern,提供乙個建立一系列相關或相互依賴物件的介面,而無須指定它們具體的類 具體的工廠負責實現具體的產品例項。即工廠方法模式的缺點 每個工廠只能建立一類產品 組成 關係作用 抽象產品 iproduct 產...