抽象工廠模式屬於創建型模式,定義為:為創建一組相關或相互依賴的對象提供一個介面,且無需指定它們的具體類。它是工廠方法模式的升級版,核心在於處理多個產品等級結構。


判斷標準:工廠產品屬同一等級結構 → 工廠方法;橫跨多個等級結構 → 抽象工廠。
interface IProduct1 { void show(); }
interface IProduct2 { void show(); }
class Product1 implements IProduct1 { public void show() { System.out.println("這是1型產品"); } }
class Product2 implements IProduct2 { public void show() { System.out.println("這是2型產品"); } }
interface IFactory {
IProduct1 createProduct1();
IProduct2 createProduct2();
}
class Factory implements IFactory {
public IProduct1 createProduct1() { return new Product1(); }
public IProduct2 createProduct2() { return new Product2(); }
}
public class Client {
public static void main(String[] args) {
IFactory factory = new Factory();
factory.createProduct1().show();
factory.createProduct2().show();
}
}
簡單工廠 → 工廠方法 → 抽象工廠,本質都是為了解耦。實務中不必糾結名稱,關鍵在於:是否達到降低耦合的目的? 需求變更時,模式邊界常模糊演變,保持靈活應對才是關鍵。