工厂模式
在工厂模式中,定义一个工厂类,工厂类负责根据客户端的需求创建相应的对象,而客户端无需直接调用对象的构造函数来创建对象,而是通过工厂类来实现。
优点
1、一个调用者想创建一个对象,只要知道其名称就可以了。
2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。
3、屏蔽产品的具体实现,调用者只关心产品的接口。
代码示例
using System;
// 定义产品接口
public interface IProduct
{
void ShowInfo();
}
// 具体产品类A
public class ProductA : IProduct
{
public void ShowInfo()
{
Debug.Log("产品A。");
}
}
// 具体产品类B
public class ProductB : IProduct
{
public void ShowInfo()
{
Debug.Log("产品B。");
}
}
// 定义工厂接口
public interface IFactory
{
IProduct CreateProduct();
}
// 具体工厂类
public class ConcreteFactory : IFactory
{
public IProduct CreateProduct()
{
// 根据具体需求创建不同的产品对象
return new ProductA();
}
}
class Program
{
static void Main()
{
// 创建具体工厂对象
IFactory factory = new ConcreteFactory();
// 使用工厂创建产品对象
IProduct product = factory.CreateProduct();
// 调用产品的方法
product.ShowInfo();
}
}