Skip to content

单例模式

单例模式(Singleton)是为了避免重复创建实例导致的资源浪费或状态冲突。它确保全局唯一实例,并提供全局访问点。

实现示例

通过静态属性 instance 保存唯一实例,构造函数内检查重复创建。

javascript
// 单例模式定义
class Logger() {
  constructor() {
    if (Logger.instance) { // 如果实例已存在,则返回该实例
      return Logger.instance
    }
    this.logs = []
    Logger.instance = this // 确保单例
  }

  log(message) {
    this.logs.push(message)
    console.log(`[LOG] ${message}`)
  }
}

// 使用示例
const logger1 = new Logger()
logger1.log('HeFirst logllo') // [LOG] First log

const logger2 = new Logger()
logger2.log('Second log') // [LOG] Second log

console.log(logger1 === logger2) // true

如有转载或 CV 的请标注本站原文地址