C#设计模式:静态变量在工厂模式中的应用

avatar
作者
筋斗云
阅读量:0

在工厂模式中,静态变量可以用来存储工厂对象的实例,以确保在整个应用程序中只存在一个工厂对象。这样可以保证每次获取产品实例时都是从同一个工厂对象中获取,避免多次创建工厂对象造成资源浪费。

以下是一个简单的示例代码,演示了如何在工厂模式中使用静态变量存储工厂对象的实例:

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 方法用于获取工厂实例,确保在整个应用程序中只存在一个工厂对象。

通过使用静态变量来存储工厂对象的实例,可以确保工厂模式的单例特性,避免多次创建工厂对象,提高了代码的性能和可维护性。