設計模式 建立型模型 抽象工廠模式

2021-10-14 20:52:36 字數 1057 閱讀 4343

是一種為訪問類提供乙個建立一組相關或相互依賴物件的介面,且訪問類無須指定所要產品的具體類就能得到同族的不同等級的產品的模式結構。

抽象工廠模式是工廠模式的公升級版本,工廠方法模式只生產乙個等級的產品,而抽象工廠模式可生產多個等級的產品。

使用抽象工廠模式一般需要滿足以下條件:

優點:抽象工廠模式除了具有工廠方法模式的特點外,其他主要優點如下: 缺點

當產品族中需要增加乙個新的產品時,所有的工廠類都需要進行修改。增加了系統的抽象性和理解難度。

結構同工廠方法模式一樣,也是由抽象工廠、具體工廠、抽象產品和具體產品等 4 個要素構成,但抽象工廠中方法個數不同,抽象產品的個數也不同。

主要角色: 類圖

實現抽象工廠: 提供了產品的生成方法:

inte***ce

abstractfactory

具體工廠:實現了產品的生成方法:

// 具體工廠1 

class

concretefactory1

implements

abstractfactory

}// 具體工廠2

class

concretefactory2

implements

abstractfactory

}

適用於以下場景:

需要建立的物件是一系列相互關聯或相互依賴的產品族時;

系統中有多個產品族,但每一次只使用其中的某一族產品;

當系統中提供了產品的類庫,且所有的產品的介面相同,客戶端不依賴產品例項的建立細節和內部結構。

抽象工廠模式的拓展有一定的「開閉原則」傾斜性:

當增加乙個新的產品族時只需增加乙個新的具體工廠,不需要修改原**,滿足開閉原則;

當產品族中需要增加乙個新種類的產品時,則所有的工廠類都需要進行修改,不滿足開閉原則。

當系統中只存在乙個等級結構的產品時,抽象工廠退化為工廠方法模式。

建立型模型 抽象工廠模式

工廠方法模式通過引入工廠等級結構,解決了簡單工廠模式中工廠類職責太重的問題,但由於工廠方法模式中的每個工廠只生產一類產品,可能會導致系統中存在大量的工廠類,勢必會增加系統的開銷。此時,我們可以考慮將一些相關的產品組成乙個 產品族,由同乙個工廠來統一生產,這就是我們本文將要學習的抽象工廠模式的基本思想...

設計模式 抽象工廠 建立型模式

介紹了簡單工廠與工廠方法之後,現在我們來看一下工廠三兄弟的最後乙個 抽象工廠。那什麼是抽象工廠呢?抽象工廠模式 abstract factory pattern 提供乙個建立一系列相關或相互依賴物件 的介面,而無須指定它們具體的類。抽象工廠模式又稱為kit模式,屬於物件建立型模式。說起來,抽象工廠與...

設計模式 建立型模式 工廠模式,抽象工廠模式

簡單工廠模式不是 23 種裡的一種,簡而言之,就是有乙個專門生產某個產品的類。它只算工廠模式的乙個特殊實現。簡單工廠模式在實際中的應用相對於其他2個工廠模式用的還是相對少得多,因為它只適應很多簡單的情況。1 建立shape介面 public inte ce shape 2 建立實現該介面的具體圖形類...