Skip to content

单例模式

说明

  • 确保一个类只有一个实例, 并提供全局访问点
  • 应用场景: 配置管理、日志记录器、数据库连接等

使用

ts
// 创建一个声音管理类 方式一
class SoundManager {
  // 在内部实例化
  static init = new SoundManager()
  // 将构造函数设置为私有的, 外部就无法通过 new 关键字实例化
  private constructor () {}
}

// 外部使用
SoundManager.init

// 创建一个敌人管理类 方式二(推荐), 相对节省内存
class EnemyManager {
  private static instance: EnemyManager
  private constructor() {}
  static Init() {
    // 当前单例是否产生, 懒加载, 不实用时节省内存
    if (!this.instance) {
      EnemyManager.instance = new EnemyManager()
    }
    return EnemyManager.instance
  }
}

// 外部使用
EnemyManager.Init()