模式:单例模式
概念:系统中被唯一使用;一个类只有一个实例。
UML:java的方式

/**
* @description 单例模式:只实例化一次。用闭包实现单例模式。
* 场景:jq的$只实例化一次。系统中的公共库方法,实例化一次就好。
公共库,不管谁去用,都只实例化一次。所以必须用单例模式去约束。再new就报错。
*/
class SingleMode {
static
login() {
console.log('单例模式')
}
}
SingleMode.getInstance = (function () {
let instance; //闭包内的变量不会消亡,私有属性。把函数当成返回值.
return function () {
if (!instance) { //判断是否实例化过。因为闭包内的变量不会消失,实例化过便一直存在。
instance = new SingleMode()
}
return instance
}
})();
const log1 = SingleMode.getInstance()
const log2 = SingleMode.getInstance()
// console.log('true', log1 === log2)
let log3 = SingleMode.getInstance() //无法避免,,因为es6 没有private
浙公网安备 33010602011771号