目錄
創建型設計模式:
結構型設計模式:
行爲型設計模式:
Abstruct Factory Pattern(抽象工廠模式)
意圖
提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。適用性
• 一個系統要獨立於它的產品的創建、組合和表示時。• 一個系統要由多個產品系列中的一個來配置時。
• 當你要強調一系列相關的產品對象的設計以便進行聯合使用時。
• 當你提供一個產品類庫,而只想顯示它們的接口而不是實現時。
結構
參與者
• AbstractFactory (抽象工廠)
— 聲明一個創建抽象產品對象的操作接口。
• ConcreteFactory (具體工廠)
— 實現創建具體產品對象的操作。
• AbstractProduct (抽象產品)
— 爲一類產品對象聲明一個接口。
• ConcreteProduct (具體產品)
— 定義一個將被相應的具體工廠創建的產品對象。
— 實現AbstractProduct接口。
• Client(使用場景)
— 僅使用由AbstractFactory和AbstractProduct類聲明的接口。
例子
三種工廠模式的區別
工廠方法模式和抽象工廠模式的區別簡單工廠模式:
只有一個工廠類一個生產方法,根據參數不同生產不同的產品。
工廠方法模式:
每一個工廠類只負責一個產品生產,不生成其它產品。好比一條生產線只生產一個產品線。
抽象工廠模式:
每一個工廠類提供多個方法,可以生產不同的產品。好比多條生產線可以生產多家產品。