概述
在軟件系統中,經常面臨著“一系列相互依賴的對象”的創建工作;同時由於需求的變化,往往存在著更多系列對象的創建工作。如何應對這種變化?如何繞過常規的對象的創建方法(new),提供一種“封裝機制”來避免客戶程序和這種“多系列具體對象創建工作”的緊耦合?這就是我們要說的抽象工廠模式。
意圖
提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。
模型圖
邏輯模型:
物理模型:
生活中的例子
抽象工廠的目的是要提供一個創建一系列相關或相互依賴對象的接口,而不需要指定它們具體的類。這種模式可以汽車制造廠所使用的金屬沖壓設備中找到。這種沖壓設備可以制造汽車車身部件。同樣的機械用於沖壓不同的車型的右邊車門、左邊車門、右前擋泥板、左前擋泥板和引擎罩等等。通過使用轉輪來改變沖壓盤,這個機械產生的具體類可以在三分鐘內改變。