在C#中实现工厂设计模式,可以创建一个工厂类,它根据传入的参数决定创建哪个具体类的实例。以下是一个简单的示例:
// 抽象产品类
public abstract class Car
{public abstract void Drive();
}// 具体产品类
public class BmwCar : Car
{public override void Drive(){Console.WriteLine("Driving BMW.");}
}public class AudiCar : Car
{public override void Drive(){Console.WriteLine("Driving Audi.");}
}// 工厂类
public static class CarFactory
{public static Car CreateCar(string carType){switch (carType){case "BMW":return new BmwCar();case "Audi":return new AudiCar();default:throw new ArgumentException("Invalid car type");}}
}// 使用工厂创建产品实例
public class Program
{public static void Main(string[] args){Car bmw = CarFactory.CreateCar("BMW");bmw.Drive();Car audi = CarFactory.CreateCar("Audi");audi.Drive();}
}
在这个例子中,CarFactory
是一个工厂类,它根据传入的 carType
字符串来创建相应的 Car
类型的实例。这样,客户端代码只需要调用工厂方法,而不需要自己直接实例化产品类。这提供了一种灵活性,可以在不修改客户端代码的情况下引入新的产品类型。