注释很详细,直接上代码
特点和用途:
- 封装对象的创建逻辑:客户端代码只需要知道如何使用工厂接口,无需关心对象的创建细节。
- 提高代码复用性:通过工厂模式可以轻松创建复杂对象,促进代码的重用。
- 灵活性:可以根据需要动态切换产品类,满足不同的需求。
工厂模式通常在需要大量创建对象的场景中使用,尤其是对象的创建逻辑比较复杂或者经常变化的情况下,可以有效地管理对象的实例化过程。
源码:
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body></body>
<script>
// 定义一个汽车类
class Car {
constructor(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
displayInfo() {
return `${this.year} ${this.make} ${this.model}`;
}
}
// 定义一个汽车工厂类
class CarFactory {
createCar(make, model, year) {
return new Car(make, model, year);
}
}
// 使用汽车工厂类创建汽车对象
const carFactory = new CarFactory();
let car1 = carFactory.createCar("Toyota", "Camry", 2020);
let car2 = carFactory.createCar("Honda", "Accord", 2021);
console.log(car1.displayInfo()); // 输出: 2020 Toyota Camry
console.log(car2.displayInfo()); // 输出: 2021 Honda Accord
</script>
</html>