工廠模式

电器小君子發表於2024-09-09

工廠模式是一種常見的設計模式,它用於建立物件的方式。在工廠模式中,我們定義一個介面或者抽象類來建立物件,而將實際的物件建立延遲到子類中。這樣可以以統一的方式建立物件,同時也可以方便地擴充套件和修改物件的建立過程。

下面是一個簡單的示例程式碼,演示了工廠模式的實現:

using System;

// 定義產品介面
interface IProduct
{
    void Show();
}

// 具體產品類A
class ConcreteProductA : IProduct
{
    public void Show()
    {
        Console.WriteLine("This is product A");
    }
}

// 具體產品類B
class ConcreteProductB : IProduct
{
    public void Show()
    {
        Console.WriteLine("This is product B");
    }
}

// 工廠介面
interface IFactory
{
    IProduct CreateProduct();
}

// 具體工廠類A
class ConcreteFactoryA : IFactory
{
    public IProduct CreateProduct()
    {
        return new ConcreteProductA();
    }
}

// 具體工廠類B
class ConcreteFactoryB : IFactory
{
    public IProduct CreateProduct()
    {
        return new ConcreteProductB();
    }
}

class Program
{
    static void Main()
    {
        // 使用工廠A建立產品A
        IFactory factoryA = new ConcreteFactoryA();
        IProduct productA = factoryA.CreateProduct();
        productA.Show();

        // 使用工廠B建立產品B
        IFactory factoryB = new ConcreteFactoryB();
        IProduct productB = factoryB.CreateProduct();
        productB.Show();
    }
}

在上面的程式碼中,我們定義了一個產品介面 IProduct 和兩個具體的產品類 ConcreteProductAConcreteProductB。同時,我們定義了一個工廠介面 IFactory 和兩個具體的工廠類 ConcreteFactoryAConcreteFactoryB。每個具體工廠類負責建立對應的產品類例項。

Main() 方法中,我們使用工廠類來建立具體的產品例項,並呼叫其方法展示產品的資訊。

這個例子展示瞭如何使用工廠模式來建立物件,使得客戶端程式碼和具體物件的建立邏輯解耦,同時方便地擴充套件和切換不同的建立邏輯。

相關文章