主题
单例模式
单例模式(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