【简单工厂模式是什么】简单工厂模式是一种常见的软件设计模式,属于创建型模式的一种。它通过一个工厂类来封装对象的创建逻辑,客户端无需直接实例化具体类,而是通过工厂类来获取所需对象。这种模式简化了对象的创建过程,提高了系统的灵活性和可维护性。
一、简单工厂模式概述
项目 | 内容 |
模式类型 | 创建型模式 |
核心思想 | 由一个工厂类负责创建不同类型的对象 |
主要目的 | 封装对象的创建逻辑,降低客户端与具体类之间的耦合 |
适用场景 | 需要根据不同的条件创建不同对象的情况 |
优点 | 简化客户端代码,提高可维护性和扩展性 |
缺点 | 当新增产品时需要修改工厂类,违反开闭原则 |
二、简单工厂模式结构
简单工厂模式通常包含以下三个角色:
角色 | 说明 |
抽象产品(Product) | 定义所有具体产品的公共接口或抽象类 |
具体产品(Concrete Product) | 实现抽象产品接口的具体类 |
工厂类(Factory) | 负责根据参数创建具体产品对象 |
三、简单工厂模式示例
以“计算器”为例,实现加法、减法、乘法三种操作:
```java
// 抽象产品
abstract class Operation {
public abstract double getResult(double a, double b);
}
// 具体产品 - 加法
class Add extends Operation {
@Override
public double getResult(double a, double b) {
return a + b;
}
}
// 具体产品 - 减法
class Sub extends Operation {
@Override
public double getResult(double a, double b) {
return a - b;
}
}
// 工厂类
class OperationFactory {
public static Operation createOperation(String type) {
switch (type) {
case "add":
return new Add();
case "sub":
return new Sub();
default:
return null;
}
}
}
```
四、简单工厂模式优缺点总结
优点 | 缺点 |
客户端无需了解具体类的实现 | 新增产品时需修改工厂类,不符合开闭原则 |
简化对象创建过程 | 只能创建单一层次的产品,不适合复杂系统 |
提高代码的可维护性 | 不适合大规模、复杂的对象创建需求 |
五、适用场景
- 需要根据不同的输入参数返回不同的对象。
- 对象的创建逻辑较为简单,不涉及复杂的初始化过程。
- 在不需要使用更复杂的工厂方法或抽象工厂的情况下。
六、总结
简单工厂模式是一种易于理解和实现的创建型设计模式,适用于对象创建逻辑相对简单的场景。虽然它在一定程度上提高了系统的灵活性,但其扩展性有限,不适合处理复杂或多层次的对象创建需求。在实际开发中,可以根据具体情况选择是否使用该模式。