TODO:工厂模式 Factory

设置参数,根据参数产出实例,实例的类型实在运行的过程中确定的,而且这些实例直接都有类似的接口,类似构造函数的功能 工厂模式的优点在于:能解决多个相似的问题,减少大量冗余代码。

function Pet() {
  this.word = "....";
}

Pet.prototype.call = function () {
  console.log(this.word);
};

function Dog() {
  this.word = "wang wang wang ...";
}
Dog.prototype = Object.create(Pet.prototype);
Dog.prototype.constructor = Dog;

function Cat() {
  this.word = "miao miao miao ...";
}

Cat.prototype = Object.create(Pet.prototype);
Cat.prototype.constructor = Cat;

function PetFactory(type) {
  switch (type) {
    case "dog":
      return new Dog();
    case "cat":
      return new Cat();
  }
}

var myCat = PetFactory("cat");
myCat.call();

var myDog = PetFactory("dog");
myDog.call();

工厂模式一般应用场景为使用接口进行对象实例化和类之间的解耦;

results matching ""

    No results matching ""