工廠方法模式 廣泛應用的模式

2021-08-22 12:16:12 字數 1274 閱讀 1392

工廠方法模式,一種物件建立型的設計模式,提供建立物件的介面,讓子類決定要例項化的物件。通過依賴注入的方式達到解耦、復用的目的。

1)我們先來說下這個設計模式的關鍵點,「簡單工廠」 和 「依賴注入」, 對,就這兩個。

簡單工廠」 :和簡單工廠類似,該模式也是按需例項所需要的物件;

依賴注入」 :在 「簡單工廠」 對基礎上,這個模式對不同點是將物件的選擇判斷移到了呼叫者中,即 「依賴注入」。

2)我們再來看下它的類圖關係:

這裡有四個角色:抽象工廠具體工廠抽象產品具體產品

而抽象工廠和具體工廠,就是和工廠模式的區別所在,而這樣的方式,就達到了上述說的「依賴注入」的解耦目的。

產品物件的公共父類,或公共介面:

public inte***ce iproduct
實現抽象產品,定義具體的產品業務細節:

public class aproduct implements iproduct 

}public class bproduct implements iproduct

}

工廠類的父類或者介面:

public inte***ce ifactory
具體實現的工廠,與業務的具體的產品物件相對應。客戶端使用的時候直接可以根據需要來說注入對於的具體工廠:

public class afactory implements ifactory 

}public class bfactory implements ifactory

}

3.1具體工廠與具體產品相對應,客戶端可按需呼叫對應的工廠類來獲取對應的產品物件,即依賴注入

3.2當生產者清楚需要什麼樣的產品,而不關心工廠細節,這時候就可以考慮使用該模式。

應用最廣泛的模式 工廠方法模式

定義乙個建立物件的介面,讓子類決定例項化哪個類。當a物件需要呼叫b物件的方法時,可以使用new關鍵字來建立乙個b例項,然後呼叫b例項的方法,這種做法的壞處在於 a類的方法直接呼叫了b類的類名 這種方式也被稱為硬編碼耦合 一旦系統需要重構 需要使用c類來代替b類時,程式不得不改寫a類 如果應用中有10...

工廠方法模式 應用

工廠方法模式,又稱工廠模式,定義乙個建立產品物件的工廠介面,將產品物件的實際建立工作推到具體子工廠類當中。這滿足建立型模式中所要求的 建立與使用相分離 的特點。將類的例項化 具體產品的建立 延遲到工廠類的子類 具體工廠 中完成,即由子類來決定應該例項化 建立 哪乙個類。工廠方法模式的主要角色如下。抽...

工廠方法模式 工廠方法模式

工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...