在软件开发中,设计模式是解决常见问题的可重用方案,它们提供了经过验证的代码结构和设计思路。简单工厂模式是创建型模式中最基础的一种,广泛应用于对象创建的封装与解耦。
一、简单工厂模式的核心思想
简单工厂模式通过一个工厂类来封装对象的创建过程,客户端无需关心具体对象的实例化细节,只需传入相应的参数即可获得所需的对象。这种模式将对象的创建与使用分离,符合面向对象设计中的“开闭原则”和“依赖倒置原则”。
二、模式结构
- 抽象产品类:定义产品的公共接口或抽象类。
- 具体产品类:实现抽象产品类的具体子类。
- 工厂类:负责根据客户端请求创建并返回具体产品对象。
三、实例说明
假设我们有一个图形绘制系统,需要支持圆形、矩形和三角形的绘制。我们可以定义一个抽象类Shape,并让Circle、Rectangle和Triangle继承它。工厂类ShapeFactory根据传入的参数(如“circle”)返回对应的图形对象。这样,当需要新增图形类型时,只需扩展具体产品类和修改工厂类,而客户端代码无需变动。
四、优点与局限性
优点:
- 客户端与具体产品解耦,提高了代码的灵活性和可维护性。
- 集中管理对象的创建,便于统一修改和控制。
局限性:
- 工厂类职责过重,违反“单一职责原则”当产品种类过多时。
- 新增产品类型需要修改工厂类,可能违反“开闭原则”。
五、应用场景
简单工厂模式适用于以下情况:
- 客户端不需要知道具体产品的类名,只需知道对应的参数。
- 对象创建逻辑相对简单,且产品类型不会频繁变化。
- 需要统一管理对象的创建过程,例如在资源池或配置系统中。
简单工厂模式是入门设计模式的理想选择,它通过封装变化点来提升代码的可扩展性。在复杂场景下,可以考虑使用工厂方法模式或抽象工厂模式以进一步解耦。在后续文章中,我们将继续探讨其他常用设计模式。