一、什么是单例设计模式?
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
二、使用场景
1、要求生产唯一序列号。
2、WEB 中的计数器,不用每次刷新都在数据库里加一次,用单例先缓存起来。
// js手写单例设计模式
let Singleton = (function () {
let instance = null;
function Singleton (name) {
this.name = name;
}
return function (name) {
if (!instance) instance = new Singleton(name);
return instance
}
})()
console.log(Singleton('王五')) //Singleton {name: "王五"}
let a = new Singleton("张三", 18);
let b = new Singleton("李四", 17);
console.log(a); //Singleton {name: "张三"}
console.log(b); //Singleton {name: "张三"}
console.log(a === b) //true