設計模式之---抽象工廠模式

抽象工廠模式也是一種創建型的設計模式;

它是在工廠模式基礎上的一個延伸拓展,抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠創建其他工廠。該超級工廠又稱爲其他工廠的工廠,抽象工廠模式先生產一個超級工廠,超級工廠再去生產各個工廠,最後工廠再去生產對應的產品。

而工廠模式中,只有一個工廠,該工廠生產各種產品。

代碼示例如下圖:

分析:其中類FactoryProducer相當於是一個超級工廠,用於生產工廠,顏色工廠以及形狀工廠,在創建工廠時,不需要顯示的指定工廠的類型,統一是抽象工廠的類型(AbstractFactory),在實際使用時,只需要指定工廠的名稱即可生產出你想要的工廠。

          抽象工廠AbstractFactory類,爲ColorFactory以及ShapeFactory提供了一個統一的接口。

          在ColorFactory以及ShapeFactory類(工廠)中的實現方法等價於工廠模式,這兩個工廠在只知道產品名稱的前提下,即可生產出對應的產品。

如何使用:首先給定一個工廠名,由類FactoryProducer的對象生產一個具體的工廠,給定產品名稱,由具體的工廠生產出具體的產品。

可擴展性:可擴展性不好,如果新加一個工廠,則需要修改抽象工廠類的代碼,還要增加一個新增工廠的實現。(和新增一個產品是同理的)

優點:只需要一個超級工廠對象即可生產出各種工廠,對於某一個工廠,只需要一個工廠對象即可生產出同類的各種產品。

          



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章