《設計模式之禪》 工廠方法模式的擴充套件

2021-09-24 12:53:31 字數 865 閱讀 2996

1.靜態工廠模式(簡單工廠模式)

其實就是去掉了抽象工廠類,然後定義乙個工廠類的建立方法設定為靜態方法簡化了工廠類的建立

public class factory catch (exception e) 

retrun (t) product;}}

這個是用通用型建立的工廠模式

靜態的

public class client 

}

只需要直接呼叫靜態方法即可,該模式是工廠模式的弱化,因為變得簡單了,也稱為簡單工廠模式,缺點在於工廠類的擴充套件會比較困難,不符合開閉原則,但在實際專案中使用率還是很高的

2.公升級為多個工廠類

當在做乙個比較複雜的專案時,經常會遇到初始化乙個物件很耗費精力的情況,所有的產品類都放在乙個工廠方法初始化,有可能會導致**結構不清晰。例如,乙個產品類有五個具體實現,每個實現類的初始化都不一樣,如果都使用乙個工廠方法,勢必會導致該方法巨大無比,而且結構不清晰。

此時我們可以採取 乙個抽象工廠類提供介面,用多個工廠類去實現這個介面,然後通過不同的工廠類去初始化不同的實現類

這樣的好處是在於類的職責清晰,結構簡單。但是給可擴充套件性和維護性帶來了困難,因為每增加乙個產品類就要增加乙個相應的工廠類。因為工廠類和產品類的數目相同,維護時要考慮兩個物件間的關係。

3.延遲初始化

public class productfactory else else 

prmap.put(type,product);

}return product;}}

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

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到子類 樣例 女媧通過八卦爐造白種人 黃種人 黑種人。見 工廠要生產的人的介面 public inte ce human 黑種人 public class blackhuman implements human ove...

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

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

設計模式之工廠方法模式

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