如何将工厂方法模式应用于复杂生成?
摘要:在软件开发中,对象创建是最基础也是最关键的操作之一。随着项目规模的增长,直接使用 new 关键字创建对象会导致代码高度耦合,难以维护和扩展。工厂方法模式正是为了解决这一问题而生的经典设计模式。 什么是工厂方法模式? 工厂方法模式是一种创建型
在软件开发中,对象创建是最基础也是最关键的操作之一。随着项目规模的增长,直接使用 new 关键字创建对象会导致代码高度耦合,难以维护和扩展。工厂方法模式正是为了解决这一问题而生的经典设计模式。
什么是工厂方法模式?
工厂方法模式是一种创建型设计模式,它定义了一个创建对象的接口,但让子类决定实例化哪个类。这种模式将对象的实例化推迟到子类,从而实现了创建逻辑与使用逻辑的分离。
核心概念解析
工厂方法模式包含以下几个关键角色:
产品接口(Product Interface):定义了产品对象的通用接口
具体产品(Concrete Products):实现产品接口的具体类
创建者(Creator):声明工厂方法,返回产品对象
具体创建者(Concrete Creators):重写工厂方法,返回具体产品实例
为什么使用工厂方法模式?
解决紧耦合问题
考虑以下紧耦合的代码:
class Car {
drive() {
console.log('Driving a car');
}
}
class Truck {
drive() {
console.log('Driving a truck');
}
}
// 客户端代码直接依赖具体类
const vehicle1 = new Car();
const vehicle1 = new Truck();
这种写法的问题在于,客户端代码直接依赖于具体类,一旦需要添加新的车辆类型或修改创建逻辑,就需要在所有使用的地方进行修改。
实现开闭原则
工厂方法模式帮助你的代码遵循开闭原则:对扩展开放,对修改关闭。你可以添加新的产品类型而无需修改现有代码。
工厂方法模式实现
让我们通过一个完整的示例来理解工厂方法模式。
