在工厂模式中,静态变量可以用来存储工厂对象的实例,以确保在整个应用程序中只存在一个工厂对象。这样可以保证每次获取产品实例时都是从同一个工厂对象中获取,避免多次创建工厂对象造成资源浪费。
以下是一个简单的示例代码,演示了如何在工厂模式中使用静态变量存储工厂对象的实例:
using System;// 产品接口interface IProduct{ void Show();}// 具体产品Aclass ConcreteProductA : IProduct{ public void Show() { Console.WriteLine("Concrete Product A"); }}// 具体产品Bclass 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 方法用于获取工厂实例,确保在整个应用程序中只存在一个工厂对象。
通过使用静态变量来存储工厂对象的实例,可以确保工厂模式的单例特性,避免多次创建工厂对象,提高了代码的性能和可维护性。




