直接 new 具體類別會導致客戶端程式碼依賴具體類別資訊,缺乏彈性。抽象工廠模式「提供介面建立一系列相關物件,無需指定具體類別」符合需求。
標準抽象工廠結構包含多條產品線,但若產品同屬一類(如水果),可簡化為單一工廠。

public interface IFruit { }
public class Orange : IFruit
{
public Orange() { Console.WriteLine("An orange is got!"); }
}
public class Apple : IFruit
{
public Apple() { Console.WriteLine("An apple is got!"); }
}
public class FruitFactory
{
public Orange MakeOrange() { return new Orange(); }
public Apple MakeApple() { return new Apple(); }
}
客戶端僅依賴 IFruit 與 FruitFactory,具體類別可擴充無需修改呼叫端。後續將探討反射、註冊表等進階實作方式。