工廠模式(Factory Method

2021-06-07 18:15:47 字數 1308 閱讀 5365

意圖:

工廠方法模式

(factory method pattern)

:工廠方法模式又稱為

工廠模式

,也叫虛擬構造器

(virtual

constructor)

模式或者

多型模式

,屬於類的建立型模式。在工廠方法模式中,父類負責定義建立物件

的公共介面,而子類則負責生成具體的物件,這樣做的目的是將類的例項化操作延遲到子類中完成,

即由子類來決定究竟應該例項化(建立)哪乙個類。

uml圖:

角色:

抽象工廠角色:與應用程式無關,任何在模式中建立物件的工廠必須實現這個介面。

具體工廠角色:實現了抽象工廠介面的具體類,含有與引用密切相關的邏輯,並且受到應用程式的呼叫以建立產品物件。

抽象產品角色:工廠方法所建立產品物件的超型別,也就是產品物件的共同父類或共同擁有的介面。

具體產品角色:這個角色實現了抽象產品角色所聲名的介面。工廠方法所建立的每個具體產品物件都是某個具體產品角色的例項。

優缺點:

優點:

1、基於工廠角色和產品角色的

多型性設計

是工廠方法模式的關鍵。它能

夠使工廠可以自主確定建立何種產品物件,而如何建立這個物件的細

節則完全封裝在具體工廠內部。

2、使用工廠方法模式的另乙個優點是在系統中加入新產品時,無需修改

抽象工廠和抽象產品提供的介面,無需修改客戶端,也無需修改其它

的具體工廠和具體產品,而只要新增乙個新的具體工廠和具體產品即

可。(符合

開閉原則

缺點:

1、在新增新產品時,需要編寫新的具體產品類,而且還要提供與之對應

的具體工廠類,類成對增加,將導致系統設計較為龐大,且執行時繫

統會有額外的開銷。

使用範圍:

1、不能清楚知道所必須建立的物件的類。

2、乙個類希望由它的子類來指定它所建立的物件。

3、將建立物件的職責委託給多個子類中的某乙個,且不同子類提供不同

實現。

設計模式之工廠方法(Factory Method)

在軟體開發過程中,有很多人抱怨著需求的變化,是需求沒有做好麼?不是的,其實需求變化在軟體開發中是不可避免的。做人也是一樣,出了問題要先從自己這邊找原因,然後想辦法解決。我們身為程式設計師,向使用者和需求分析師們抱怨 其實,任何一種抱怨都是沒有意義的 是沒有意義的。究竟怎樣解決這個問題呢?我身邊很多人...

學習筆記 設計模式之Factory Method

目的分類 物件建立型模式 範圍準則 類 該模式處理類和子類之間的關係,這些關係通過繼承建立,是靜態的,在編譯時刻便確定下來了 主要功能 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factory method使乙個類的例項化延遲到其子類 適用情況 當乙個類不知道它所必須建立的物件的類的時候...

簡單工廠模式,工廠模式,抽象工廠模式

三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...