单例模式顾名思义就是说在实例化对象**的过程中, 只能存在一个实例对象, 经典的实现方式就是创建一个类, 这个类包含一个方法, 这个方法在没有对象存在的情况下, 将会创建一个新的实例对象, 如果对象存在, 这个方法只是返回这个对象的引用, 多数用于例如弹框(Modal)之类等, 更多的还比如是全局存储的对象流行框架中使用的如 Vux 和 Redux**
class Singleton {
constructor() {
this.state = false;
this.instance = null;
}
getInstance() {
if(!this.instance) {
this.instance = new Singleton();
}
return this.instance;
}
show() {
if(this.state) {
console.log('已经显示了');
return;
}
this.state = true;
console.log('>>>>>> show');
}
hide() {
if(!this.state) {
console.log('已经隐藏掉了>>>>>>>>>');
}
this.state = false;
console.log('>>>>>>>>>>>>>>>>> hide');
}
}
const single = new Singleton();
single.show()
single.show();
single.hide();
single.hide();
像上边代码一样, 单例模式是只允许存在一个实例对象, 还有一种是可以使用对象直接创建, 可以避免有更多的变量命名冲突, 防止别人修改代码造成的 **bug
**