抽象工廠

抽象工廠

· · ·

簡介


1. 意圖
提供一個創建一系列相關或相互依賴對象的介面,而無需指定它們具體的類。
2. 別名
K i t
3. 動機
考慮一個支持多種視感( l o o k - a n d - f e e l)標準的用戶界面工具包,例如M o t i f和
Presentation Manager。不同的視感風格為諸如滾動條、窗口和按鈕等用戶界面“窗口組件”
定義不同的外觀和行為。為保證視感風格標準間的可移植性,一個應用不應該為一個特定的
視感外觀硬編碼它的窗口組件。在整個應用中實例化特定視感風格的窗口組件類將使得以後
很難改變視感風格。
4. 適用性
在以下情況可以使用Abstract factory模式
· 一個系統要獨立於它的產品的創建、組合和表示時。
· 一個系統要由多個產品系列中的一個來配置時。
· 當你要強調一系列相關的產品對象的設計以便進行聯合使用時。
· 當你提供一個產品類庫,而只想顯示它們的介面而不是實現
抽象工廠模式(英語:Abstract Factory)是一種常見的設計模式。此模式為一個產品家族提供了統一的創建介面。當需要這個產品家族的某一系列的時候,可以從抽象工廠中選出相對系的系列來創建一個具體的工廠類別。

適用性


在以下情況可以使用抽象工廠模式
一個系統要獨立於它的產品的創建、組合和表示時。
一個系統要由多個產品系列中的一個來配置時。
當你要強調一系列相關的產品對象的設計以便進行聯合使用時。
當你提供一個產品類庫,而只想顯示它們的介面而不是實現時。

優點


具體產品從客戶代碼中被分離出來
容易改變產品的系列
將一個系列的產品族統一到一起創建

缺點


在產品族中擴展新的產品是很困難的,它需要修改抽象工廠的介面