2011/05/06

[Design Patterns] 工廠方法(Factory Method)

參考 大話設計模式
定義:定義一個用於建立物件的介面,讓子類別決定實體化哪一個類別。工廠方法使一個類別的實體化延遲到子類別。
使用時機:在目標功能無法決定或預期可能的變化時使用。(例如:計算機目前只有加法與減法,但未來可能會有其他運算的加入)
後遺症:每增加一個功能,就必須加一個對應的工廠類別。

結構圖:來源
2011-5-7 上午 10-24-49
說明:有效的實現 開放-封閉原則,也維持封裝物件建立過程的優點;需要注意的是,每增加一個產品,就需要加一個產品工廠的類別,再來就是客戶端需要調用的時候,仍然需要費心。

程式碼:
南丁格爾類別
2011-5-7 上午 11-19-24
----------------------------------------------------------
子類別
2011-5-7 上午 11-20-28
----------------------------------------------------------
南丁格爾工廠介面
2011-5-7 上午 11-21-45
---------------------------------------------------------
實現相對應的工廠
2011-5-7 上午 11-23-04
----------------------------------------------------------
用戶端調用
2011-5-7 上午 11-27-24
----------------------------------------------------------------------
結果
2011-5-7 上午 11-28-21

Reference:
http://www.blogjava.net/wintys/archive/2009/04/14/patter_factory.html
http://caterpillar.onlyfun.net/Gossip/DesignPattern/FactoryMethod.htm
http://www.dotspace.idv.tw/Patterns/Jdon_Factory.htm
http://blog.amo-studio.org/2009/08/factory-pattern.html

0 Comments:

張貼留言