1.工厂模式
工厂模式(Factory Pattern)的核心是:将对象的创建过程从业务代码中分离出来,让调用方不需要直接使用 new 关键字去实例化具体的类,从而降低代码的耦合度
适合使用工厂模式的场景
- 客户端不希望直接依赖具体类(避免大量
new) - 需要根据条件创建不同类型的对象
- 后续会持续扩展产品类型,希望统一管理创建逻辑
- 希望把参数校验、默认值、兜底策略等初始化细节收敛到一处
类型定义与产品实现
interface Car {
drive(): void;
getBrand(): string;
}具体产品类
class Tesla implements Car {
getBrand(): string {
return "Tesla";
}
drive(): void {
console.log("🚗 Tesla 正在安静地驾驶...");
}
}
class XiaomiCar implements Car {
getBrand(): string {
return "Xiaomi SU7";
}
drive(): void {
console.log("🚗 小米汽车正在驾驶...");
}
}工厂类
class CarFactory {
static createCar(brand: string): Car {
switch (brand.toLowerCase()) {
case "tesla":
return new Tesla();
case "xiaomi":
case "su7":
return new XiaomiCar();
default:
throw new Error(`未知的汽车品牌: ${brand}`);
}
}
}使用示例
const car1 = CarFactory.createCar("Tesla");
car1.drive();
console.log("品牌:", car1.getBrand());
const car2 = CarFactory.createCar("SU7");
car2.drive();
console.log("品牌:", car2.getBrand());