什么是单例类

单例类是一种特殊的类,它只能有一个实例,也就是说,在一个程序中只能有一个单例类的实例存在。它的作用是保证一个类只有一个实例,并且提供一个全局访问点。

单例类的用途

单例类的用途是在一个程序中只有一个实例,以便更好地管理资源。它可以用来控制共享资源的访问,例如数据库连接、文件句柄等,这样可以避免多个线程对同一个资源的同时访问,从而提高程序的运行效率。

单例类的实现

单例类的实现可以通过以下几种方式:

1、使用静态变量:

class Singleton {
static instance = null;
static getInstance() {
if (instance === null) {
instance = new Singleton();
}
return instance;
}
}

2、使用私有构造函数和静态函数:

class Singleton {
private static instance: Singleton;
private constructor() {}
static getInstance() {
if (!Singleton.instance) {
Singleton.instance = new Singleton();
}
return Singleton.instance;
}
}

3、使用闭包:

const Singleton = (function () {
let instance;
function createInstance() {
return new Object("I am the instance");
}
return {
getInstance: function () {
if (!instance) {
instance = createInstance();
}
return instance;
},
};
})();