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()
      ...
    }
  }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容