创建型模式:工厂方法(Factory Method)模式
一、简介
工厂方法(Factory Method)模式是一种创建型设计模式,它定义了一个创建对象的接口,但让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。在 C# 中,工厂方法模式提供了一种更灵活的对象创建方式,将对象的创建和使用分离,提高了代码的可维护性和扩展性。
二、角色和职责
- 抽象产品(Product): 定义了产品的接口或抽象类,所有具体产品都实现或继承自该接口或抽象类。
- 具体产品(Concrete Product): 实现了抽象产品接口,是具体被创建的对象。
- 抽象工厂(Creator): 声明了工厂方法,该方法返回一个抽象产品类型的对象。抽象工厂可以包含一些与产品相关的业务逻辑,这些逻辑可能依赖于工厂方法所创建的产品对象。
- 具体工厂(Concrete Creator): 实现了抽象工厂中的工厂方法,负责创建具体的产品对象。
三、代码示例
下面通过一个简单的示例来演示工厂方法模式在 C# 中的实现。假设我们要创建一个简单的图形绘制程序,有圆形(Circle)和矩形(Rectangle)两种图形,并且使用工厂方法模式来创建这些图形。
/// <summary>
/// 抽象产品:图形接口
/// </summary>
interface IShape
{void Draw();
}/// <summary>
/// 具体产品:圆形
/// </summary>
public class Circle : IShape
{public