在工廠模式中,靜態變量可以用來存儲工廠對象的實例,以確保在整個應用程序中只存在一個工廠對象。這樣可以保證每次獲取產品實例時都是從同一個工廠對象中獲取,避免多次創建工廠對象造成資源浪費。
以下是一個簡單的示例代碼,演示了如何在工廠模式中使用靜態變量存儲工廠對象的實例:
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
方法用于獲取工廠實例,確保在整個應用程序中只存在一個工廠對象。
通過使用靜態變量來存儲工廠對象的實例,可以確保工廠模式的單例特性,避免多次創建工廠對象,提高了代碼的性能和可維護性。