中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

C#設計模式:靜態變量在工廠模式中的應用

c#
小樊
83
2024-04-26 21:10:53
欄目: 編程語言

在工廠模式中,靜態變量可以用來存儲工廠對象的實例,以確保在整個應用程序中只存在一個工廠對象。這樣可以保證每次獲取產品實例時都是從同一個工廠對象中獲取,避免多次創建工廠對象造成資源浪費。

以下是一個簡單的示例代碼,演示了如何在工廠模式中使用靜態變量存儲工廠對象的實例:

using System;

// 產品接口
interface IProduct
{
    void Show();
}

// 具體產品A
class ConcreteProductA : IProduct
{
    public void Show()
    {
        Console.WriteLine("Concrete Product A");
    }
}

// 具體產品B
class ConcreteProductB : IProduct
{
    public void Show()
    {
        Console.WriteLine("Concrete Product B");
    }
}

// 工廠接口
interface IFactory
{
    IProduct CreateProduct();
}

// 具體工廠
class ConcreteFactory : IFactory
{
    private static ConcreteFactory instance;

    // 私有構造函數
    private ConcreteFactory() { }

    // 獲取工廠實例
    public static ConcreteFactory GetInstance()
    {
        if (instance == null)
        {
            instance = new ConcreteFactory();
        }
        return instance;
    }

    public IProduct CreateProduct()
    {
        // 根據具體情況創建不同的產品
        // 這里只是簡單示例,實際應用中可能會根據參數來創建不同的產品
        return new ConcreteProductA();
    }
}

class Program
{
    static void Main(string[] args)
    {
        // 獲取工廠實例
        IFactory factory = ConcreteFactory.GetInstance();

        // 創建產品并調用Show方法
        IProduct product = factory.CreateProduct();
        product.Show();
    }
}

在上面的示例中,ConcreteFactory 類中使用了靜態變量 instance 來存儲工廠對象的實例。GetInstance 方法用于獲取工廠實例,確保在整個應用程序中只存在一個工廠對象。

通過使用靜態變量來存儲工廠對象的實例,可以確保工廠模式的單例特性,避免多次創建工廠對象,提高了代碼的性能和可維護性。

0
峡江县| 深泽县| 沿河| 侯马市| 清河县| 古交市| 子长县| 南通市| 米泉市| 璧山县| 土默特左旗| 雅江县| 涞水县| 永康市| 钟祥市| 昭通市| 西宁市| 财经| 太原市| 界首市| 浙江省| 石狮市| 即墨市| 绩溪县| 湖州市| 南宫市| 千阳县| 武隆县| 三门县| 固原市| 民县| 阳曲县| 罗山县| 鹰潭市| 甘谷县| 钟山县| 内丘县| 舟山市| 凭祥市| 通道| 建德市|