javascript设计模式1

创建型模式

单例模式:保证一个类只有一个实例,并提供访问实例的全局访问点
const single=function(){};
single.getData=(function(){   //闭包
  let test=null;
  return function(){
    if(!test){test=new single()}
    return test;
  }
})()
工厂模式:对外提供一个可以根据不同参数来创建不同对象的函数
class Dog(){
  run(){
    console.log("汪")
  }
};

class Cat(){
  run(){
    console.log("喵")
  }
}

class Animal{
  constructor(name){
    switch(name){
       case: "dog":return new Dog();
       case "cat":return new Cat();
       default: throw("error");
    }
  }
}

const cat=new Animal("cat");
抽象工厂模式:在原有的工厂模式父节上增加一个超级工厂来规范;
//创建2个普通的工厂模式,Animal 和 Peson
class AbstractFactory{ //定义抽象规范
  getPerson(){}
  getAnimal(){}
}
//然后animal,person 继承absractFactory;
class Person extends AbstractFactory{
  getPerson(){
    switch(){...}
  }
}
//超级工厂
class SuperFactory(){
  constructor(choose){
    switch(choose){
      case "person": return new Person()
      ...
    }
  }
}

你可能感兴趣的:(javascript设计模式1)