当前位置: 首页 > news >正文

单例模式的实现方法

        单例模式(Singleton Pattern)是一种常用的软件设计模式,用于确保一个类只有一个实例,并提供一个全局访问点这种模式在需要控制对资源(如配置对象、线程池、缓存等)的访问时特别有用。        

一、单例模式的实现方式

  1. 懒汉模式(Lazy Initialization)

    • 延迟初始化:类的第一个实例在第一次被使用时创建。

    • 线程安全:通过双重检查锁定(Double-Checked Locking)来确保线程安全。

    • 性能:由于延迟初始化,可以减少不必要的对象创建,从而提高性能。

      class Singleton {
      public:static Singleton* getInstance() {if (_instance == nullptr) {std::lock_guard<mutex> lock(_mutex);if (_instance == nullptr) {_instance = new Singleton();}}return _instance;}private:Singleton() {}  // 私有构造函数,防止直接实例化~Singleton() {}  // 私有析构函数,确保正确清理private:static Singleton* _instance;  // 静态实例static std::mutex _mutex;  // 互斥锁
      };
  2. 饿汉模式(Eager Initialization)

    • 立即初始化:类的第一个实例在程序启动时就创建。

    • 线程安全:通常不需要额外的同步机制,因为实例在程序启动时就创建了。

    • 性能:可能会因为提前创建实例而增加一些开销,但如果实例创建是轻量级的,这可能不是问题。

      class Singleton {
      public:Singleton() {}  // 私有构造函数,防止直接实例化static Singleton& getInstance() {static Singleton instance(_instance);return instance;}private:Singleton() {}  // 私有构造函数,防止直接实例化static Singleton _instance;  // 静态实例
      };

        在饿汉模式中,实例在第一次调用 getInstance 方法时创建,而在饿汉模式中,实例在类加载时就创建。选择哪种模式取决于具体需求和上下文。饿汉模式可以节省资源,但如果初始化顺序很重要,或者需要确保在多线程环境中安全地创建实例,饿汉模式可能更合适。 

相关文章:

  • Android数据库全栈开发实战:Room+SQLCipher+Hilt企业级应用构建
  • 解决Centos连不上网
  • 自定义一个 Spring Boot Starter -笔记
  • 广州华锐视点邀您参与2025广交会VRAR展【5月10-12日】
  • 大数据产品销售数据分析:基于Python机器学习产品销售数据爬虫可视化分析预测系统设计与实现
  • 20250506格式化NanoPi NEO开发板使用Ubuntu core16.04系统的TF启动卡
  • Spark 的 Shuffle 机制:原理与源码详解
  • 医疗健康软件专利:给生命科学装个 “智能防盗门“
  • vue项目中渲染markdown并处理报错
  • 电池热管理CFD解决方案,为新能源汽车筑安全防线
  • 汽车紧固件防腐3.0时代:敦普水性漆用无铬锌铝涂层定义「零氢脆」标准
  • 人工智能与生命科学的深度融合:破解生物医学难题,引领未来科技革命
  • Qt—鼠标移动事件的趣味小程序:会移动的按钮
  • 2025最新vmware-17虚拟机安装教程(保姆级,图文讲解,带安装包)
  • MySQL基础关键_009_DDL 和 DML(二)
  • 多线程2-多线程编程
  • 【Fifty Project - D23】
  • 从入门到登峰-嵌入式Tracker定位算法全景之旅 Part 7 |TinyML 定位:深度模型在 MCU 上的部署
  • 扩增子分析|微生物生态网络稳定性评估之鲁棒性(Robustness)和易损性(Vulnerability)在R中实现
  • Jetpack Compose 自定义 Slider 完全指南
  • 前瞻|美联储明晨“按兵不动”几无悬念:关税战阴霾下,会否释放降息信号
  • 中方对中美就关税谈判的立场发生变化?外交部:中方立场没有任何改变
  • 吴清:创造条件支持优质中概股企业回归内地和香港股市
  • 上海市委常委会扩大会议传达学习习近平总书记考察上海重要讲话和在部分省区市“十五五”时期经济社会发展座谈会上的重要讲话精神
  • 五一假期上海虹桥边检站出入境近4.7万人次,韩国入境旅客同比增118%
  • 强沙尘暴压城近万名游客被困,敦煌如何用3小时跑赢12级狂风?