C 工廠方法模式

2021-06-22 10:08:10 字數 1498 閱讀 9733

工廠方法(factorymethod)模式是類的建立模式,其用意是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類中。工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了多型性,工廠方法模式保持了簡單工廠模式的優點,而且克服了它的缺點。在工廠方法模式中,核心的工廠類不再負責所有產品的建立,而是將具體建立工作交給子類去做。這個核心類僅僅負責給出具體工廠必須實現的介面,而不接觸哪乙個產品類被例項化這種細節。這使得工廠方法模式可以允許系統在不修改工廠角色的情況下引進新產品。

在factory method模式中,工廠類與產品類往往具有平行的等級結構,它們之間一一對應。

二、factory method模式角色與結構:

抽象工廠(

creator

)角色:是工廠方法模式的核心,與應用程式無關。任何在模式中建立的物件的工廠類必須實現這個介面。

具體工廠(

concrete creator

)角色:這是實現抽象工廠介面的具體工廠類,包含與應用程式密切相關的邏輯,並且受到應用程式呼叫以建立產品物件。在上圖中有兩個這樣的角色:bulbcreator與tubecreator。

抽象產品(

product

)角色:工廠方法模式所建立的物件的超型別,也就是產品物件的共同父類或共同擁有的介面。在上圖中,這個角色是light。

具體產品(

concrete product

)角色:這個角色實現了抽象產品角色所定義的介面。某具體產品有專門的具體工廠建立,它們之間往往一一對應。

三、程式舉例:

using

system;

public

abstract

class

light

public

class

bulblight : light

public

override

void

turnoff()

}public

class

tubelight : light

public

override

void

turnoff()

}public

abstract

class

creator

public

class

bulbcreator : creator

}public

class

tubecreator : creator

}public

class

client}

活動過程包括:客戶端建立bulbcreator物件,客戶端持有此物件的型別是creator,而實際型別是bulbcreator。然後客戶端呼叫bulbcreator的factory方法,之後bulbcreator呼叫bulblight的建構函式創造出產品bulblight物件。

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

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

C 工廠模式 工廠方法

簡單工廠 工廠模式 簡單工廠,工廠方法,抽象工廠三種.工廠方法 力求簡潔 工廠即為生產東西的地方.在c 也有這種模式,充分利用了物件導向語言的三大特徵 多型,繼承 簡單工廠.工廠的功能就是生產,而生產些什麼呢?乙個工廠可以生產鞋子,生產衣服.它們所處的車間不一樣,所以需要兩個不同的類,這兩個類繼承工...

C 工廠方法模式

簡單工廠模式最大的優點就是在於工廠類中,包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了其他不必要的麻煩。只需要把 給工廠,就可以自動出相應的例項,計算結果即可。但是,簡單工廠模式中,我需要新增功能,在抽象中,的確是只需要增加乙個純虛函式,再加乙個實現即可,我覺得...