一、基本模式
1. 抽象工廠,具體工廠,抽象產品,具體產品作為其要素;
2. 具體工廠生產出具有【抽象產品】協議方法的產品
3. 生產出的具體產品細節對使用者透明,使用者只需知道抽象產品的協議即可。
4. 使用時: abstractproduct aproduct = concretefactory.createproduct; aproduct.dosth();
二、模式演化
1. 抽象xx不一定要用抽象類,用介面或protocol也可
2. 產品建立方法可有多個, 如 createeatableproduct + createplayabelproduct + createsoulmateproduct 對應不同的抽象產品
3. 有則復用, 無則生產, 與享元模式形成組合模式
三、 模式退化
抽象產品的多型性作為必要的適用條件,當只有一類具體產品時,失去多型在存在意義
2 抽象工廠模式
參考 工廠方法模式和抽象工廠模式不好分清楚,他們的區別如下 工廠方法模式 乙個抽象產品類,可以派生出多個具體產品類。乙個抽象工廠類,可以派生出多個具體工廠類。每個具體工廠類只能建立乙個具體產品類的例項。抽象工廠模式 多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。乙個抽象工廠類,可以派生出多...
抽象工廠模式 抽象工廠模式
抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...
設計模式(2) 抽象工廠模式
抽象工廠模式 abstract factory pattern 是圍繞乙個超級工廠建立其他工廠。該超級工廠又稱為其他工廠的工廠。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指定它們的類。每個生成的工廠都能按照工廠模式...