在工厂模式中,静态变量可以用来存储工厂对象的实例,以确保在整个应用程序中只存在一个工厂对象。这样可以保证每次获取产品实例时都是从同一个工厂对象中获取,避免多次创建工厂对象造成资源浪费。
以下是一个简单的示例代码,演示了如何在工厂模式中使用静态变量存储工厂对象的实例:
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
方法用于获取工厂实例,确保在整个应用程序中只存在一个工厂对象。
通过使用静态变量来存储工厂对象的实例,可以确保工厂模式的单例特性,避免多次创建工厂对象,提高了代码的性能和可维护性。