少年阿賓

          那些青春的歲月

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

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

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



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


          GOF《設計模式》寫的很清楚,工廠方法是由子類自行決定實例化那個類,而抽象工廠是自己決定實例化哪個類。至于是組合還是繼承還是實現接口都無所謂。根本區別在于是自己實例化還是子類實例化。
          posted on 2014-12-28 22:06 abin 閱讀(1814) 評論(0)  編輯  收藏 所屬分類: PatternDesigns
          主站蜘蛛池模板: 正定县| 工布江达县| 桃园市| 云南省| 祁阳县| 溧阳市| 宁夏| 麦盖提县| 莱州市| 梓潼县| 新河县| 沅陵县| 浏阳市| 桂平市| 蒲江县| 淮阳县| 通渭县| 孟村| 乃东县| 尼勒克县| 白河县| 贵州省| 井冈山市| 沙洋县| 曲阜市| 福清市| 澎湖县| 灵山县| 集贤县| 广河县| 颍上县| 中江县| 望江县| 崇左市| 郑州市| 玛多县| 邢台市| 庆安县| 虹口区| 义马市| 忻城县|