建立型 工廠方法模式

2022-08-17 11:30:22 字數 937 閱讀 6983

1、工廠方法模式意圖:

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factory method使乙個類的例項化延遲到其子類。

工廠方法模式用於為屬於同一類別的產品定義對應的具體工廠類,並將具體工廠類開放給使用者類來使用。

2、應用場景:

考慮乙個榨汁機的應用場景。榨汁機可以用來製作蘋果汁、西瓜汁、橘汁等,即榨汁機可以用來製作水果汁。但是,夏天的冷飲店中,為了提高製作水果汁的效率和防止味道互串等情況,可能需要分別準備三個水果榨汁機,分別用來生產蘋果汁、西瓜汁、橘汁等。

3、工廠方法模式類圖:

角色

協作

4、適用性:

工廠方法模式跟工廠模式類似,其中工廠方法模式適合於構造同屬於同乙個類別的不同產品,所有的產品屬於同乙個系列中。

5、例項:

5.1 例項類圖:

說明:店員(waiter)使用不同的榨汁機來製作不同的水果汁,進而銷售給顧客。

5.2 waiter類:

除了使用者類waiter類之外,其他的類定義明了,故僅提供使用者類。

1

public

class

waiter

89 }

6、特點

【注:開閉原則——軟體開發應該面向擴充套件,而非修改。】

7、簡單工廠vs工廠方法

簡單工廠:不滿足開閉原則。在需要新增新型別產品時,除新增新產品類,還需要修改簡單工廠模式中的工廠類,為工廠類中建立物件的靜態方法新增新的選擇項。

工廠方法:滿足開閉原則。在需要新增新型別產品時,除新增新產品類,還需要繼承抽象工廠類,建立新型別產品對應的工廠類。

建立型 工廠方法模式

抽象產品 定義產品的介面,產品物件的公共父類 具體產品 實現產品的介面 抽象工廠 宣告工廠方法,返回乙個產品 具體工廠 抽象工廠的子類,客戶端呼叫,返回乙個具體的例項 需求 日誌記錄器可以通過很多途徑儲存日誌,使用者可以修改配置檔案,靈活的更換日誌記錄的方式,為了更好的封裝記錄器的初始化過程,並保證...

設計模式 建立型 工廠方法模式

建立性模式有五種 1.工廠模式 簡單工廠模式 經常被用到,不屬於gof23種設計模式 工廠方法模式 抽象工廠模式 2.建造者模式 3.原型模式 4.單例模式 工廠方法 factory method 模式的意義是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類當中。核心工廠類不再負責產品的建立...

建立型設計模式 工廠方法模式

工廠方法模式解決的是,不像簡單工廠似的,要增加產品必須改工廠類的 實現思路是,1.抽象工廠類 2.抽象產品類 3.具體工廠類 繼承抽象工廠類 4.具體產品類 繼承抽象產品類 5.外界呼叫。1.抽象工廠類 建立抽象工廠類 abstract class factory2.抽象產品類 建立抽象產品類 ab...