概述
确保一个类只有一个实例,并提供一个全局访问点
特性
- 保证该类只有一个实例
- 要获取这个实例,只能通过该类获取
什么时候情况下用
只需要一个实例的时候,比如消息中心、数据库实例、框架实例
实现
javascript
class A {
static single
constructor() {
console.log(1);
}
static getInstance() {
if (!this.single) {
this.single = new A()
}
return this.single
}
}
const a = A.getInstance()
const a1 = A.getInstance()
const a2 = A.getInstance()
console.log(a,a1,a2);
// 1
// A {} A {} A {}
总结
只需要一个实例的情况下,就用单例