在C#中实现工厂设计模式,可以创建一个工厂类,它根据传入的参数决定创建哪个具体类的实例。以下是一个简单的示例:
cs
// 抽象产品类
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
类型的实例。这样,客户端代码只需要调用工厂方法,而不需要自己直接实例化产品类。这提供了一种灵活性,可以在不修改客户端代码的情况下引入新的产品类型。