工廠類就是一個專門用來建立其它對象的類,工廠類在多态性程式設計實踐中是非常重要的。它允許動态替換類,修改配置,會使應用程式更加靈活。掌握工廠模式對Web開發是必不可少的。
工廠模式通常用來傳回類似接口的不同的類,工廠的一種常見用法就是建立多态的提供者。
通常工廠模式有一個關鍵的構造,即一般被命名為factory的靜态方法。這個靜态方法可以接受任意數量的參數,并且必須傳回一個對象。
Program List:基本的工廠類
view source
print?
|
| |
| |
| |
| |
|
| |
|
| |
| |
| |
| |
| |
|
| |
| |
| |
Program List:利用工廠類生産對象
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
| |
| |
|
| |
| |
| |
Program List:一個完整的工廠類
下面的程式定義了一個通用的工廠類,它生産能夠儲存你所有操作的空對象,你可以獲得一個執行個體,這些操作都在那個執行個體中了。
| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
| |
| |
| |
| |
| |
| |
| |
|
| |
| |
| |
| |
| |
| |
| |
|
| |
| |
| |
| |
| |
| |
| |
|
| |
| |
| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
| |
| |
| |
| |
|
| |
| |
| |
|
| |
| |
| |
| |
|
| |
| |
| |
|
| |
| |
| |
| |
|
| |
| |
| |
| |
|
| |
| |
| |
|
| |
程式運作結果:
| |
工廠模式主要是為建立對象提供過渡接口,以便将建立對象的具體過程屏蔽隔離起來,達到提高靈活性的目的。
工廠模式可以分為三類:
- 簡單工廠模式(Simple Factory)
- 工廠方法模式(Factory Method)
- 抽象工廠模式(Abstract Factory)
這三種模式從上到下逐漸抽象,并且更具一般性。
簡單工廠模式又稱靜态工廠方法模式。重命名上就可以看出這個模式一定很簡單。它存在的目的很簡單:定義一個用于建立對象的接口。工廠方法模式去掉了簡單工廠模式中工廠方法的靜态屬性,使得它可以被子類繼承。這樣在簡單工廠模式裡集中在工廠方法上的壓力可以由工廠方法模式裡不同的工廠子類來分擔。
工廠方法模式仿佛已經很完美的對對象的建立進行了包裝,使得客戶程式中僅僅處理抽象産品角色提供的接口。那我們是否一定要在代碼中遍布工廠呢?大可不必。也許在下面情況下你可以考慮使用工廠方法模式:
- 當客戶程式不需要知道要使用對象的建立過程。
- 客戶程式使用的對象存在變動的可能,或者根本就不知道使用哪一個具體的對象。