工厂模式顾名思义,可以批量的进行生产,也就是说,我们可以不使用new 的方式生成实例,而是用工厂统一生成

    1. class Dog {
    2. call() {
    3. console.log("小狗 汪 汪 汪")
    4. }
    5. }
    6. class Cat {
    7. call() {
    8. console.log("小猫 喵 喵 喵")
    9. }
    10. }
    11. class Pig {
    12. call() {
    13. console.log("小猪 哼 哼 哼")
    14. }
    15. }

    接下来我们可以创建一个专门生产动物的工厂来管理它们,统一入口

    1. class AnimalFactory {
    2. getAnimal(animal) {
    3. switch(animal) {
    4. case: "DOG":
    5. return new Dog();
    6. case "CAT":
    7. return new Cat();
    8. case "PIG":
    9. return new Pig();
    10. default:
    11. return null;
    12. }
    13. }
    14. }

    当使用的时候只需要传入对应的字符串就可以拿到对应动物的实例了

    1. const animalFactory = new AnimalFactory()
    2. const dog = animalFactory.getAnimal("DOG")
    3. dog.call()
    4. const cat = animalFactory.getAnimal("CAT")
    5. cat.call()
    6. const pig = animalFactory.getAnimal("PIG")
    7. pig.call()