单列模式
单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点以访问该实例。单例模式通常用于控制对资源的访问,例如配置文件、数据库连接等,以确保在应用程序的生命周期内只有一个实例存在。
以下是一个简单的 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
被赋值为当前实例,并返回该实例。随后创建的实例会直接返回第一次创建的实例,因此 instance1
和 instance2
是相同的实例。
单例模式的优点包括:
- 全局访问点: 提供了一个全局的访问点,使得任何地方都可以方便地访问单例实例。
- 实例唯一性: 确保一个类只有一个实例存在,避免了资源的重复创建和浪费。
然而,单例模式也有一些缺点,例如可能引入全局状态,使得代码更难测试和维护。因此,在使用单例模式时应仔细考虑其适用性和影响。