阅读量: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
方法用于获取工厂实例,确保在整个应用程序中只存在一个工厂对象。
通过使用静态变量来存储工厂对象的实例,可以确保工厂模式的单例特性,避免多次创建工厂对象,提高了代码的性能和可维护性。