工厂模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,常用于创建具有相同接口的不同类型的对象,如敌人工厂,武器工厂等。
// 定义一个抽象的产品类
public abstract class Product
{
// 定义一个抽象的方法
public abstract void Show();
}
// 定义一个具体的产品类A
public class ProductA : Product
{
// 实现抽象方法
public override void Show()
{
Console.WriteLine("This is product A.");
}
}
// 定义一个具体的产品类B
public class ProductB : Product
{
// 实现抽象方法
public override void Show()
{
Console.WriteLine("This is product B.");
}
}
// 定义一个工厂类
public class Factory
{
// 定义一个静态方法,根据参数创建不同的产品对象并返回
public static Product CreateProduct(string type)
{
switch (type)
{
case "A":
return new ProductA();
case "B":
return new ProductB();
default:
return null;
}
}
}
// 测试代码
class Program
{
static void Main(string[] args)
{
// 通过工厂类创建产品对象
Product productA = Factory.CreateProduct("A");
Product productB = Factory.CreateProduct("B");
// 调用产品对象的方法
productA.Show();
productB.Show();
}
}