天天看點

Factory Method(工廠方法)--對象建立型模式

Factory Method(工廠方法)–對象建立型模式

一、意圖

定義一個用于建立對象的接口,讓子類決定執行個體化哪一個類。Factory Method使一個類的執行個體化延遲到其子類。

二、動機

1.在軟體系統中,經常面臨着建立對象的工作;由于需求的變化, 需要建立的對象的具體類型經常變化。

2.如何應對這種變化?如何繞過正常的對象建立方法(new),提供一 種“封裝機制”來避免客戶程式和這種“具體對象建立工作”的緊 耦合?

三、适用性

1.當一個類不知道它所必須建立對象的類型的時候。

2.當一個類希望由子類來指定它所建立的對象的時候。

3.當類建立對象的職責委托給多個幫助子類的中的某一個,并且你希望将哪一個幫助子類是代理着這一資訊局部變化的時候。

四、結構

Factory Method(工廠方法)--對象建立型模式

五、效果

1.為子類提供挂鈎(hook)。

2.連接配接平行的類層次。

六、實作

1.Creator類是一個抽象并且不提供它所聲明的方法的實作;Creator類是一個具體的類而且為工廠方法提供預設的實作。

2.參數化工廠方法。

3.特定語言的變化和問題。

4.使用模闆已避免建立子類。

5.命名約定。

七、要點總結

1.Factory Method模式用于隔離類對象的使用者和具體類型之間的 耦合關系。面對一個經常變化的具體類型,緊耦合關系(new)會導 緻軟體的脆弱。

2.Factory Method模式通過面向對象的手法,将所要建立的具體對象工作延遲到子類,進而實作一種擴充(而非更改)的政策,較好地解決了這種緊耦合關系。

3.Factory Method模式解決“單個對象”的需求變化。缺點在于要求建立方法/參數相同。

八、舉例說明:

想造一個椅子,具體怎麼造等客戶來了才決定。主要思想将實作延遲到子類實作。

本文為李建忠設計模式視訊的筆記以及《設計模式-可複用面向對象的軟體的基礎》和自己的部分見解

繼續閱讀