一、简单工厂模式概述
简单工厂模式(Simple Factory Pattern)属于创建型模式,它由一个工厂类根据传入的参数(通常是一个字符串或枚举值)来决定创建出哪一种产品类的实例。该模式的核心思想是将对象的创建过程封装在一个工厂类中,客户端无需知道具体的创建细节,只需通过工厂类获取所需的产品对象。简单工厂模式主要包含以下几个角色:工厂角色(Factory)、抽象产品角色(Product)和具体产品角色(Concrete Product)。
二、模式结构
1、工厂角色(Factory)
工厂角色是简单工厂模式的核心,它负责创建具体的产品对象。工厂类通常包含一个静态方法(也可以是非静态方法),该方法根据传入的参数来决定创建哪个具体产品类的实例。
2、抽象产品角色(Product)
抽象产品角色是所有具体产品类的父类或接口,它定义了具体产品类所具有的公共方法和属性。客户端通过抽象产品角色来操作具体产品对象,从而实现了客户端与具体产品类的解耦。
3、具体产品角色(Concrete Product)
具体产品角色是抽象产品角色的具体实现类,它实现了抽象产品角色中定义的方法和属性,代表了具体的产品对象。
三、示例实现
接下来,我们通过一个简单的示例来演示简单工厂模式在 C# 中的实现。假设我们需要创建一个汽车工厂,该工厂可以生产不同类型的汽车,如轿车(Car)和 SUV(SUV)。
1、定义抽象产品类
首先,定义一个抽象的汽车类(Car),作为所有具体汽车类的父类,该类中定义了汽车的基本方法,如启动(Start)和停止(Stop)。
public abstract class Car
{
public abstract void Start();
public abstract void Stop();
}
2、创建具体产品类
创建具体的轿车类(SedanCar)和 SUV 类(SUVCar),它们都继承自抽象汽车类,并实现了其中的方法。