c 工廠模式與抽象工廠模式

2021-12-29 20:47:55 字數 981 閱讀 7011

一、 工廠方法(factory method)模式

工廠方法(factorymethod)模式是類的建立模式,其用意是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類中。

工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了多型性,工廠方法模式保持了簡單工廠模式的優點,而且克服了它的缺點。

在工廠方法模式中,核心的工廠類不再負責所有產品的建立,而是將具體建立工作交給子類去做。這個核心類僅僅負責給出具體工廠必須實現的介面,而不接觸哪乙個產品類被例項化這種細節。這使得工廠方法模式可以允許系統在不修改工廠角色的情況下引進新產品。

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

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

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

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

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

工廠模式與抽象工廠模式是應用得比較多的構造型模式,先簡單的介紹一下這種構造模式的應用背景:

在開發乙個類的過程中,我們一般都要為這個類開發相應的建構函式(不過大部分情況下,.net開發環境會自動預設建立建構函式),這樣,使用這個類的客戶可以利用建構函式對這個類進行例項化.但是,有時候會出現這種情況:需要使用乙個物件的客戶並不知道(或者不應該知道)應該對幾個類中的哪個類進行初始化.面對這個問題,我們可以利用工廠模式定義乙個介面,客戶可以使用這個介面建立乙個物件.同時我們還可以控制對哪個類進行例項化,例項化過程使用了乙個方法,這個方法需要利用外部因素來確定對哪個類進行例項化.有時候,這些外部因素就是乙個龐大的研究主題,並且往往會涉及到多個類.為此,抽象工廠模式就應用於這種場合,其目的是為了提供乙個建立一系

c 工廠模式與抽象工廠模式。

工廠模式與抽象工廠模式,相信同行不會陌生 在網上及相關書裡面也看過這方面的介紹 推薦這兩本書 steven john metsker s design patterns in c 和 gof s design pattern framework2.0 今天抽點時間,寫點這方面的東西,希望能起到一點拋...

c 工廠模式與抽象工廠模式

原始出處 作者資訊和本宣告。否則將追究法律責任。工廠模式與抽象工廠模式,相信同行不會陌生 在網上及相關書裡面也看過這方面的介紹 推薦這兩本書 steven john metsker s design patterns in c 和 gof s design pattern framework2.0 ...

c 工廠模式與抽象工廠模式

工廠模式與抽象工廠模式,相信同行不會陌生 在網上及相關書裡面也看過這方面的介紹 推薦這兩本書 steven john metsker s design patterns in c 和 gof s design pattern framework2.0 今天抽點時間,寫點這方面的東西,希望能起到一點拋...