一、簡介
工廠方法(Factory Method)模式是一種創建型設計模式,它定義了一個創建對象的接口,但讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。在 C# 中,工廠方法模式提供了一種更靈活的對象創建方式,將對象的創建和使用分離,提高了代碼的可維護性和擴展性。
二、角色和職責
- 抽象產品(Product): 定義了產品的接口或抽象類,所有具體產品都實現或繼承自該接口或抽象類。
- 具體產品(Concrete Product): 實現了抽象產品接口,是具體被創建的對象。
- 抽象工廠(Creator): 聲明了工廠方法,該方法返回一個抽象產品類型的對象。抽象工廠可以包含一些與產品相關的業務邏輯,這些邏輯可能依賴于工廠方法所創建的產品對象。
- 具體工廠(Concrete Creator): 實現了抽象工廠中的工廠方法,負責創建具體的產品對象。
三、代碼示例
下面通過一個簡單的示例來演示工廠方法模式在 C# 中的實現。假設我們要創建一個簡單的圖形繪制程序,有圓形(Circle)和矩形(Rectangle)兩種圖形,并且使用工廠方法模式來創建這些圖形。
/// <summary>
/// 抽象產品:圖形接口
/// </summary>
interface IShape
{void Draw();
}/// <summary>
/// 具體產品:圓形
/// </summary>
public class Circle : IShape
{public