【什么是工厂模式】工厂模式是一种常见的设计模式,属于创建型模式的一种。它的主要目的是将对象的创建过程封装起来,使系统更加灵活、可维护,并降低类之间的耦合度。通过工厂模式,客户端不需要直接实例化具体的类,而是通过一个统一的接口来获取对象。
工厂模式的核心思想是“用一个工厂来创建对象”。它通常包含一个工厂类,该类根据传入的参数或条件,返回不同的具体类实例。这种模式可以避免在代码中出现大量的`new`语句,提高代码的可扩展性和可维护性。
工厂模式有三种常见类型:简单工厂模式、工厂方法模式和抽象工厂模式。它们分别适用于不同的场景,但都遵循“将对象的创建与使用分离”的原则。
工厂模式对比表
特性 | 简单工厂模式 | 工厂方法模式 | 抽象工厂模式 |
定义 | 由一个工厂类根据参数返回不同产品 | 每个具体产品都有对应的工厂类 | 提供一个创建一系列相关或依赖对象的接口 |
核心 | 一个工厂类负责所有产品的创建 | 每个产品对应一个工厂 | 一个工厂负责创建一组相关产品 |
扩展性 | 不易扩展,新增产品需修改工厂类 | 易于扩展,新增产品只需增加工厂类 | 易于扩展,新增产品组只需增加工厂类 |
耦合度 | 高(工厂类与产品类紧密耦合) | 中(工厂与产品解耦) | 低(工厂与产品解耦) |
适用场景 | 产品种类较少,且不常变化 | 产品种类较多,需要灵活扩展 | 需要创建多个相关产品组合时 |
示例 | `CarFactory.createCar("SUV")` | `SUVFactory.create()` | `VehicleFactory.createEngine()`, `createWheel()` |
小结:
工厂模式通过封装对象的创建逻辑,提升了系统的灵活性和可维护性。在实际开发中,可以根据项目需求选择合适的工厂模式类型,以达到最佳的设计效果。