城市獵人

          在一網情深的日子里,誰能說得清是苦是甜,只知道確定了就義無反顧
          posts - 1, comments - 7, trackbacks - 0, articles - 89

          模式(四-2):工廠方法(Factrory Method)模式

          Posted on 2008-07-22 10:49 sailor 閱讀(191) 評論(0)  編輯  收藏 所屬分類: 模式

          定義

              定義了一個創建對象的接口,但由子類決定要實例化的類是哪一個。工廠方法讓類把實例化推遲到子類。

          原則

              依賴抽象,不依賴具體實現(依賴倒裝)
                      工廠方法使用繼承,把對象的創建委托給子類,子類實現工廠方法來創建對象。這個原則說明了不能讓高層組件依賴底層組件,而且,高層組件和底層組件都應該依賴于抽象。

          角色

          工廠方法類圖
          從上圖可以看出,工廠方法模式涉及到以下的角色

          抽象工廠接口(Creator)
           
               擔任這個角色的是工廠方法的核心,它是與應用程序無關,創建的工廠類必須實現該接口。
          實工廠類 (Conrete Creator)
               擔任這個角色的是與應用程序緊密相關的,直接在程序的調用下創建具體的產品。
          產品 (Product)
               擔任這個角色的是工廠方法模式所創建對象的父類,或者是必須實現的接口。
          實產品 (Concrete Product)
             擔任這個角色的是工廠方法模式所創建對象所屬的類。

              工廠方法模式和簡單工廠模式在定義上的不同是很明顯的。工廠方法模式的核心是一個抽象工廠類,而不像簡單工廠模式, 把核心放在一個實類上。工廠方法模式可以允許很多實的工廠類從抽象工廠類繼承下來, 從而可以在實際上成為多個簡單工廠模式的綜合,從而推廣了簡單工廠模式。
              反過來講,簡單工廠模式是由工廠方法模式退化而來。設想如果我們非常確定一個系統只需要一個實的工廠類, 那么就不妨把抽象工廠類合并到實的工廠類中去。而這樣一來,我們就退化到簡單工廠模式了。
             工廠方法模式又叫多形性工廠模式,顯然是因為實工廠類都有共同的接口,或者都有共同的抽象父類。

          實例:(略)
              
          參考資料:《First Head 設計模式》
                              《菜鳥學設計模式-------工廠方法(Factory Method)模式


          主站蜘蛛池模板: 安多县| 婺源县| 凌云县| 乌恰县| 司法| 休宁县| 梧州市| 长垣县| 出国| 朝阳县| 桃江县| 黎平县| 龙里县| 松潘县| 上林县| 临泽县| 湾仔区| 乃东县| 当阳市| 河池市| 来安县| 佛教| 北碚区| 金坛市| 元朗区| 祁东县| 图们市| 托克逊县| 措美县| 平陆县| 志丹县| 龙井市| 平果县| 尉犁县| 大连市| 长泰县| 长葛市| 内黄县| 桓台县| 龙海市| 建瓯市|