# 工厂模式
工厂模式是最常见的用于描述一类对象的方法。
工厂模式的主要目的是将对象的创建过程与使用过程分离,从而提高代码的灵活性和可扩展性。
# 简单工厂
简单工厂模式是最简单的工厂模式实现方式。它包含一个静态工厂方法,根据传入的参数来决定创建哪个具体类的实例并返回该实例。
class Dog {
speak() {
return "Woof!";
}
}
class Cat {
speak() {
return "Meow!";
}
}
class AnimalFactory {
static getAnimal(animal) {
if (animal === "dog") {
return new Dog();
} else if (animal === "cat") {
return new Cat();
}
}
}
// 使用简单工厂模式创建对象
const dog = AnimalFactory.getAnimal("dog");
console.log(dog.speak()); // 输出: Woof!
const cat = AnimalFactory.getAnimal("cat");
console.log(cat.speak()); // 输出: Meow!
# 抽象工厂
抽象工厂模式提供了一组相关的或相互依赖的对象的接口,而无需指定它们具体的类。它通常用于创建多个相关产品的对象。
class Dog {
speak() {
return "Woof!";
}
}
class Cat {
speak() {
return "Meow!";
}
}
class AnimalFactory {
createDog() {}
createCat() {}
}
class DogFactory extends AnimalFactory {
createDog() {
return new Dog();
}
createCat() {
return new Cat();
}
}
// 使用抽象工厂模式创建对象
const dogFactory = new DogFactory();
const dog = dogFactory.createDog();
console.log(dog.speak()); // 输出: Woof!
const cat = dogFactory.createCat();
console.log(cat.speak()); // 输出: Meow!