跳到主要内容

单列模式

单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点以访问该实例。单例模式通常用于控制对资源的访问,例如配置文件、数据库连接等,以确保在应用程序的生命周期内只有一个实例存在。

以下是一个简单的 JavaScript 示例,演示了单例模式:

// 单例类
class Singleton {
constructor() {
if (!Singleton.instance) {
Singleton.instance = this;
}

return Singleton.instance;
}

// 其他实例方法
showMessage() {
console.log('Hello, I am a singleton instance.');
}
}

// 客户端代码
const instance1 = new Singleton();
const instance2 = new Singleton();

console.log(instance1 === instance2); // Output: true

instance1.showMessage(); // Output: Hello, I am a singleton instance.
instance2.showMessage(); // Output: Hello, I am a singleton instance.

在这个例子中,Singleton 是一个单例类,通过构造函数的方式实现了单例模式。当第一次创建实例时,Singleton.instance 被赋值为当前实例,并返回该实例。随后创建的实例会直接返回第一次创建的实例,因此 instance1instance2 是相同的实例。

单例模式的优点包括:

  • 全局访问点: 提供了一个全局的访问点,使得任何地方都可以方便地访问单例实例。
  • 实例唯一性: 确保一个类只有一个实例存在,避免了资源的重复创建和浪费。

然而,单例模式也有一些缺点,例如可能引入全局状态,使得代码更难测试和维护。因此,在使用单例模式时应仔细考虑其适用性和影响。