1. 程式人生 > >設計模式總結之Abstruct Factory Pattern(抽象工廠模式)

設計模式總結之Abstruct Factory Pattern(抽象工廠模式)

目錄

建立型設計模式: 結構型設計模式: 行為型設計模式:

Abstruct Factory Pattern(抽象工廠模式)

意圖

提供一個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。

適用性

•一個系統要獨立於它的產品的建立、組合和表示時。
•一個系統要由多個產品系列中的一個來配置時。
•當你要強調一系列相關的產品物件的設計以便進行聯合使用時。
•當你提供一個產品類庫,而只想顯示它們的介面而不是實現時。


結構

 
參與者
•AbstractFactory (抽象工廠) 
— 宣告一個建立抽象產品物件的操作介面。 
•ConcreteFactory (具體工廠) 

— 實現建立具體產品物件的操作。 

•AbstractProduct (抽象產品) 

— 為一類產品物件宣告一個介面。 

•ConcreteProduct (具體產品) 

— 定義一個將被相應的具體工廠建立的產品物件。 

— 實現AbstractProduct介面。 
•Client(使用場景)

— 僅使用由AbstractFactory和AbstractProduct類宣告的介面。



例子

 



三種工廠模式的區別

工廠方法模式和抽象工廠模式的區別
簡單工廠模式:
只有一個工廠類一個生產方法,根據引數不同生產不同的產品。

工廠方法模式:
每一個工廠類只負責一個產品生產,不生成其它產品。好比一條生產線只生產一個產品線。

抽象工廠模式:
每一個工廠類提供多個方法,可以生產不同的產品。好比多條生產線可以生產多家產品。