网站首页 > 技术文章 正文
单例模式就是指系统的整个生命周期,该类只产生一个实例化的对象,并提供一个访问该实例的全局接口。
为什么设计单例模式呢
最主要的原因就是在操作一些公共资源的场景时,能避免多个实例化对象引起的复杂操作,方便控制。例如,设置全局配置信息时,使用单例模式来实现配置管理器,避免程序多个实例重复加载和不一致。再比如,线程池、数据库连接池,单例模式实现资源池,可以确保整个程序共享一个资源池,提高资源利用率和性能。
单例模式必备的特点
单例类的构造函数和析构函数必须设为私有,以防止外部直接实例化对象。
单例类必须提供一个类型为该类的静态成员变量,以及供外部获取实例对象的静态方法接口,该静态方法会调用私有构造函数来创建对象,赋值给该静态成员变量,此后所有外部调用该静态方法都会返回该静态成员变量。
单例模式实现
单例模式的实现分为懒汉式和饿汉式。懒汉式指的是系统启动后,实例并不存在,只有当需要该实例时才会创建,懒汉模式在不加锁的情况下是线程不安全的。饿汉式指的是系统启动后就实例化单例对象,需要时直接调用,这种方式是线程安全的。
懒汉式的例子:
头文件
源文件
饿汉式:
程序一开始就实例化单例对象
猜你喜欢
- 2024-09-24 学习C++之良好的编程习惯与编程要点
- 2024-09-24 大一萌新看过来,“这样”学C++,让你不再迷茫
- 2024-09-24 学习单例模式引发的思考
- 2024-09-24 C++中相互依赖的全局变量初始化策略
- 2024-09-24 零基础学习C++
- 2024-09-24 c++的面试总结
- 2024-09-24 避免踩坑,C++常见面试题的分析与解答
- 2024-09-24 20道必须掌握的C++题,纸上谈兵惯用伎俩
- 2024-09-24 C++11魔法静态变量magic static
- 2024-09-24 C++11 中值得关注的几大变化
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)