工廠方法模式

2021-08-03 04:19:26 字數 3323 閱讀 4082

define an inte***ce for creating an object,but let subclasses decide which class to instantite.factory method lets a class defer instantation to subclass.

1.抽象產品類?

1

2

3

4

5

6

7

8

packagefactorymethod;

publicabstractclassproduct

publicabstractvoidmethod2();

2.具體的產品類?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

packagefactorymethod;

publicclassconcreteproduct1extendsproduct

}

packagefactorymethod;

publicclassconcreteproduct2extendsproduct

}

3.抽象工廠類?

1

2

3

4

5

packagefactorymethod;

publicabstractclasscreator

4.具體工廠類?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

packagefactorymethod;

publicclassconcretecreatorextendscreatorcatch(exception e)

return(t)product;

}

}

5.客戶端**?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

packagefactorymethod;

publicclassclient

}

工廠方法模式的優點

優點:1. 良好的封裝性,降低模組間的耦合;

2. 面向產品介面,遮蔽產品類。

3. 典型的解耦框架。高層模組只需要知道產品的抽象類。

4. 符合迪公尺特法則、依賴倒置原則、黎克特制替換原則。

工廠方法模式的特殊應用

描述:去掉了工廠方法模式中的工廠抽象類,同時把具體工廠方法中的方法設定為靜態。

優點:簡化結構、呼叫過程

缺點:不利於擴充套件、不符合開閉原則

描述:對普通工廠方法模式的改進,多個工廠方法模式是提供多個工廠方法,分別建立物件

優點:建立類的職責清晰,結構簡單

缺點:增加擴充套件難度(增加協調類,封裝子工廠類,對高層提供統一的訪問介面)

描述:採用工廠方法模式實現單例模式的功能

做法:私有單例類,不允許new出物件

在工廠類內,使用反射機制建立乙個物件

描述乙個物件被消費完畢後,不立刻釋放,工廠類保持其,等待再次使用。

做法:在工廠類中以集合的形式容納所有產生物件

每次請求建立時,如果集合中已有則直接返回;若沒有則建立,放入集合並返回

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

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

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

工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...

工廠方法模式(一) 簡單工廠方法模式

ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...