參考 大話設計模式
定義:定義一個用於建立物件的介面,讓子類別決定實體化哪一個類別。工廠方法使一個類別的實體化延遲到子類別。
使用時機:在目標功能無法決定或預期可能的變化時使用。(例如:計算機目前只有加法與減法,但未來可能會有其他運算的加入)
後遺症:每增加一個功能,就必須加一個對應的工廠類別。
結構圖:來源
說明:有效的實現 開放-封閉原則,也維持封裝物件建立過程的優點;需要注意的是,每增加一個產品,就需要加一個產品工廠的類別,再來就是客戶端需要調用的時候,仍然需要費心。
程式碼:
南丁格爾類別
----------------------------------------------------------
子類別
----------------------------------------------------------
南丁格爾工廠介面
---------------------------------------------------------
實現相對應的工廠
----------------------------------------------------------
用戶端調用
----------------------------------------------------------------------
結果
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:
張貼留言