個人學習設計模式之工廠模式

2021-08-30 11:12:54 字數 1028 閱讀 3644

簡單工廠模式:乙個介面,多個實現類,乙個工廠類,用來例項化抽象的介面

優點:1、乙個呼叫者想建立乙個物件,只要知道其名稱就可以了。 2、擴充套件性高,如果想增加乙個產品,只要擴充套件乙個工廠類就可以。 3、遮蔽產品的具體實現,呼叫者只關心產品的介面。

缺點:每次增加乙個產品時,都需要增加乙個具體類和物件實現工廠,使得系統中類的個數成倍增加,在一定程度上增加了系統的複雜度,同時也增加了系統具體類的依賴。這並不是什麼好事。

注意事項:作為一種建立類模式,在任何需要生成複雜物件的地方,都可以使用工廠方法模式。有一點需要注意的地方就是複雜物件適合使用工廠模式,而簡單物件,特別是只需要通過 new 就可以完成建立的物件,無需使用工廠模式。如果使用工廠模式,就需要引入乙個工廠類,會增加系統的複雜度。

實現:首先建立介面

public inte***ce people if(person.equals("teacher")){

return new teacher();

if(person.equals("doctor")){

return new doctor();

return null;

最後使用工廠:

public class factorymain {

public static void main(string args) {

peoplefactory factory = new peoplefactory();

people people1 =factory.getperson("student");

people1.makething();

people people2 =factory.getperson("teacher");

people2.makething();

people people3 =factory.getperson("doctor");

people3.makething();

輸出:上學

教書救人

設計模式系列(個人學習記錄)

單例模式 singleton pattern 是我們常用的最簡單的設計模式之一,它提供了一種建立物件的最佳方式。單例模式主要涉及到單一的類,此類負責建立自己的物件,同時確保只有單個物件被建立。這個類提供了一種訪問其唯一的物件的方式,可以直接訪問,可以不需要例項化該類的物件。它的主要作用是保證在系統中...

設計模式學習之工廠模式

工廠模式,factorymethod,定義乙個工廠類的基類,基類中不再去實現具體的產品類的例項,而是將產品類的例項化工作放在其子類中進行,然後由客戶端來決定要使用那一種產品類的例項,工廠模式也要求產品類都具有相同的產品基類,這和簡單工廠模式比較相似。個人理解 工廠模式和簡單模式最大的區別是將產品類的...

設計模式之工廠模式學習

與簡單工廠模式相比,工廠模式為每個類增加了乙個工廠類。每個工廠類返回它所對應的類的物件指標。簡單工廠模式的最大優點 工廠類中包含了必要的邏輯判斷。根據客戶端的選擇條件動態的例項化相關的類。沒有在客戶端實現判斷,也就去除了與客戶端的依賴。簡單工廠模式實現計算類結構圖 工廠模式實現計算類結構圖 工廠模式...