推荐答案
// www.javascriptcn.com code example
function createProduct(name, price) {
return {
name: name,
price: price,
getInfo: function() {
return `Product: ${this.name}, Price: ${this.price}`;
}
};
}
const product1 = createProduct('Laptop', 999);
console.log(product1.getInfo()); // 输出: Product: Laptop, Price: 999本题详细解读
工厂模式的概念
工厂模式是一种创建型设计模式,它提供了一种创建对象的方式,而无需指定具体的类。工厂模式通过定义一个创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
工厂模式的优点
- 封装性:工厂模式将对象的创建过程封装在一个函数中,客户端无需关心对象的创建细节。
- 可扩展性:如果需要添加新的产品类型,只需修改工厂函数,而不需要修改客户端代码。
- 解耦:工厂模式将对象的创建与使用分离,降低了代码的耦合度。
工厂模式的实现
在JavaScript中,工厂模式可以通过一个简单的函数来实现。这个函数接受一些参数,并根据这些参数创建并返回一个新的对象。
// www.javascriptcn.com code example
function createProduct(name, price) {
return {
name: name,
price: price,
getInfo: function() {
return `Product: ${this.name}, Price: ${this.price}`;
}
};
}使用工厂模式
通过调用工厂函数,可以创建不同的产品对象:
const product1 = createProduct('Laptop', 999);
const product2 = createProduct('Smartphone', 499);
console.log(product1.getInfo()); // 输出: Product: Laptop, Price: 999
console.log(product2.getInfo()); // 输出: Product: Smartphone, Price: 499工厂模式的适用场景
- 对象的创建过程复杂:当对象的创建过程涉及多个步骤或依赖多个条件时,使用工厂模式可以简化代码。
- 需要创建多个相似对象:当需要创建多个具有相似属性和方法的对象时,工厂模式可以减少重复代码。
- 需要解耦对象的创建和使用:当希望将对象的创建与使用分离时,工厂模式是一个很好的选择。
通过工厂模式,可以有效地管理对象的创建过程,并使代码更加灵活和可维护。