為建立一組相關或者是相互依賴的物件提供乙個介面,而不需要指定它們的具體類。
乙個物件族有相同的約束時可以使用抽象工廠模式。在工廠方法模式中,我們的具體建立者每次使用都只能建立乙個同型別的物件,假如我們現在需要的是多個不同型別的物件,工廠方法就滿足不了需求了。這時我們可以把多個工廠方法組合到乙個類,這就是抽象工廠模式,它就是專門用來建立多個產品,也可以說是建立產品家族的。
抽象工廠角色
abstractfactory.class
public
abstract
class
abstractfactory
具體工廠角色
concretefactory1.class
public
class
concretefactory1
extends
abstractfactory
@override
public abstractproductb createproductb()
}
concretefactory2.class
public
class
concretefactory2
extends
abstractfactory
@override
public abstractproductb createproductb()
}
抽象產品角色
abstractproducta.class
public
abstract
class
abstractproducta
abstractproductb.class
public
abstract
class
abstractproductb
具體產品角色
concreteproducta1.class
public
class
concreteproducta1
extends
abstractproducta
}
concreteproducta2.class
public
class
concreteproducta2
extends
abstractproducta
}
concreteproductb1.class
public
class
concreteproductb1
extends
abstractproductb
}
concreteproductb2.class
public
class
concreteproductb2
extends
abstractproductb
}
分離介面與實現,客戶端使用抽象工廠來建立需要的物件,而客戶端根本就不知道具體的實現是誰,客戶端只是面向產品的介面程式設計而已,使其從具體的產品實現中解耦,同時基於介面與實現的分離,使抽象工廠方法模式在切換產品類時更加靈活、容易
類檔案的**性增加
不太容易擴充套件新的產品類,因為每當要增加乙個新的產品類就需要修改抽象工廠,那麼所有的工廠類都要修改
設計模式(五) 抽象工廠模式
在設計模式 三 工廠方法模式和設計模式 四 jdk中的那些工廠方法中介紹了工廠方法模式。本文將介紹另外一種工廠模式 抽象工廠模式。在介紹了簡單工廠模式和工廠方法模式之後,相信很多人對工廠模式 如果單獨提到工廠模式,即包括簡單工廠模式 工廠方法模式及本文即將介紹的抽象工廠模式 的思想都有了一定的理解。...
設計模式(五)抽象工廠模式
1.抽象工廠模式定義 抽象工廠模式可以說是是工廠方法模式的公升級版,當需要建立的產品有多個產品線 產品族 時使用抽象工廠模式是比較好的選擇。那什麼是多個產品線呢?拿我們在簡單工廠模式和工廠方法模式中學習的生產電腦的例子來舉例,我們一直都是生產聯想和惠普的電腦,但是電腦也有多個產品線 台式電腦 筆記本...
設計模式(五) 抽象工廠模式
一 抽象工廠模式基本介紹 1 抽象工廠模式 定義了乙個inte ce用於建立相關或有依賴關係的物件簇,而無需指明具體的類 2 抽象工廠模式可以將簡單工廠模式和工廠方法模式進行整合 3 從設計層面看,抽象工廠模式就是對簡單工廠模式的改進 或者稱為進一步的抽象 4 將工廠抽象為兩層,absfactory...