创建型模式
单例模式:保证一个类只有一个实例,并提供访问实例的全局访问点
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()
...
}
}
}