typescript工厂方法
时间: 2024-10-11 10:00:38 浏览: 17
TypeScript工厂方法是一种设计模式,它用于创建复杂对象的实例。工厂方法允许你在运行时根据需要创建不同类型的对象,而不必暴露构造函数。这种模式通常在一个专门的工厂类中定义,该类提供了一系列静态方法,每个方法对应一种特定的对象类型。
例如:
```typescript
class Animal {
constructor(name: string) {
this.name = name;
}
speak() {
return `${this.name} makes a sound.`;
}
}
class Dog extends Animal {}
class Cat extends Animal {}
// 工厂方法
class AnimalFactory {
static createAnimal(type: 'dog' | 'cat', name: string): Animal {
if (type === 'dog') {
return new Dog(name);
} else if (type === 'cat') {
return new Cat(name);
}
throw new Error('Invalid animal type.');
}
}
// 使用示例
const dog = AnimalFactory.createAnimal('dog', 'Rex');
console.log(dog.speak()); // 输出 "Rex makes a sound."
const cat = AnimalFactory.createAnimal('cat', 'Mimi');
console.log(cat.speak()); // 输出 "Mimi makes a sound."
阅读全文