設計模式之工廠方法模式

2021-09-24 16:33:50 字數 755 閱讀 2658

工廠方法模式是簡單工廠模式的優化,解決了簡單工廠模式的不易擴充套件,簡單工廠角色過於複雜的問題,利用多型性(具體工廠類都有共同的抽象父類),定義乙個建立工作的工廠介面,將實際建立工作推遲到子類中。工廠方法類的核心是乙個抽象工廠類,而簡單工廠模式的核心是乙個具體類。在工廠方法模式中,工廠類與產品類具有平行的等級結構,它們之間一一對應。

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

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

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

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

想要乙個類需要建立某個介面的物件,但又不知道具體的實現。(總公司想要知道分公司資料,通過分公司管理部)

乙個類本身就希望由它的子類來建立所需物件

易於擴充套件,較好的符合了「開放—封閉」原則

很好的體現了「依賴倒置原則」

具體產品物件與具體工廠方法的耦合性

設計模式 工廠模式之工廠方法模式

工廠方法模式是指定義乙個建立物件的介面,然後實現這個介面的工廠來決定建立什麼樣的例項。工廠方法讓類的例項推遲到子類中進行。在這個模式中,只關心需要建立的是什麼工廠,不需要關心建立的細節。而且新加入的產品符合開閉原則。1 建立支付介面,裡面定義抽象的支付方法。package com.gupao.vip...

設計模式之工廠方法模式

package com.csair.design.pattern 工廠方法,有抽象基類,每個子類生產乙個具體物件,與抽象工廠的關係是,抽象工廠生產多個產品 產品有某種內在聯絡 工廠方法只生產乙個物件 author ppt public class factorymethod public stati...

設計模式之工廠方法模式

在介紹工廠方法模式之前,先來介紹一下簡單工廠。什麼是簡單工廠?在類中,難免要例項化一些類,那麼我們把這些類的例項化抽離出來封裝成乙個工廠類,工廠類提供乙個公共的靜態或非靜態的方法來返回其他物件所需要的物件。這樣做的目的就是將物件的例項化與邏輯 分開,提高 的復用能力。這就是簡單工廠。public a...