少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          工廠方法模式:
          一個抽象產品類,可以派生出多個具體產品類。
          一個抽象工廠類,可以派生出多個具體工廠類。
          每個具體工廠類只能創建一個具體產品類的實例。

          抽象工廠模式:
          多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。
          一個抽象工廠類,可以派生出多個具體工廠類。
          每個具體工廠類可以創建多個具體產品類的實例。

          區別:
          工廠方法模式只有一個抽象產品類,而抽象工廠模式有多個。
          工廠方法模式的具體工廠類只能創建一個具體產品類的實例,而抽象工廠模式可以創建多個。



          工廠方法模式: 一個抽象產品類,可以派生出多個具體產品類。 一個抽象工廠類,可以派生出多個具體工廠類。 每個具體工廠類只能創建一個具體產品類的實例。 抽象工廠模式: 多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。 一個抽象工廠類,可以派生出多個具體工廠類。 每個具體工廠類可以創建多個具體產品類的實例。 區別: 工廠方法模式只有一個抽象產品類,而抽象工廠模式有多個。 工廠方法模式的具體工廠類只能創建一個具體產品類的實例,而抽象工廠模式可以創建多個。


          GOF《設計模式》寫的很清楚,工廠方法是由子類自行決定實例化那個類,而抽象工廠是自己決定實例化哪個類。至于是組合還是繼承還是實現接口都無所謂。根本區別在于是自己實例化還是子類實例化。
          posted on 2014-12-28 22:06 abin 閱讀(1814) 評論(0)  編輯  收藏 所屬分類: PatternDesigns
          主站蜘蛛池模板: 闽清县| 清新县| 娄底市| 普兰县| 巴彦淖尔市| 济宁市| 虹口区| 洛隆县| 邳州市| 广水市| 兴义市| 石河子市| 通化市| 绍兴县| 大洼县| 连南| 彰化县| 布尔津县| 介休市| 河津市| 黄陵县| 舞钢市| 舒城县| 邯郸市| 东源县| 铜山县| 寻甸| 中方县| 白沙| 龙江县| 龙州县| 任丘市| 南乐县| 甘肃省| 星座| 嵊泗县| 平江县| 长寿区| 扎囊县| 左贡县| 兴安县|