# 单例模式
# 概念:
一个类只有一个实例,并提供一个访问它的全局访问点。
# 作用:
一个全局使用的类频繁地创建与销毁。
# 特点:
优点
- 划分命名空间,减少全局变量。
- 加强模块性,把个人代码组织在一个全局变量中,便于维护。
缺点
由于单例模式提供的是一种单点访问,所以它有可能导致模块间的强耦合。
# 应用场景:
当您想控制实例数目,节省系统资源的时候。
# 例子
要求生产唯一序列号。
vuex 和 redux中的store。
登录框。
# 编码实现:
/**
* @title : 单例模式 Singleton 。
*/
class Singleton {
static instance = null;
constructor() {
};
static getinstance() {
if (!this.instance) {
this.instance = new Singleton();
};
return this.instance;
};
};
const Singleton1 = Singleton.getInstance();
const Singleton2 = Singleton.getInstance();
const Singleton3 = Singleton.getInstance();
// 三个实例两两相等,说明是同一个实例
console.log(Singleton1 === Singleton3, Singleton1 === Singleton2, Singleton2 === Singleton3);