- 实现思路:
- 使用TypeScript的类和静态成员来实现单例模式。将单例实例定义为类的静态成员,通过一个静态方法来获取这个实例。如果实例不存在,则创建它;如果已存在,则直接返回已有的实例。这样不同模块在调用获取实例的静态方法时,会得到同一个单例对象,避免重复实例化。
- 代码示例:
class Singleton {
// 定义静态成员存储单例实例
private static instance: Singleton;
// 私有构造函数,防止外部直接实例化
private constructor() {}
// 静态方法用于获取单例实例
public static getInstance(): Singleton {
if (!Singleton.instance) {
Singleton.instance = new Singleton();
}
return Singleton.instance;
}
}
// 不同模块使用单例对象示例
// 模块1
const singleton1 = Singleton.getInstance();
// 模块2
const singleton2 = Singleton.getInstance();
// 这里singleton1和singleton2是同一个实例
console.log(singleton1 === singleton2);