单例设计模式概述
1.什么是单例设计模式 单例设计模式,Singleton Pattern,是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点来获取该实例。其特别适用于需要全局唯一资源管理的场景。 通俗的说,整个程序中,这个类只能有一个对象,永远不能造第二个。
2.核心思想
- 唯一性:保证类只有一个实例存在
- 全局访问:提供统一的访问接口
- 资源控制:集中管理共享资源
3.为什么要用单例
- 防止重复创建对象浪费内存
- 保证全局只有一份,数据统一不乱
- 全局都能访问,但又不会被随便乱造
4.定义一个单例类: (1)私有化它的构造函数,以防止外界创建单例类的对象; (2)使用类的私有静态指针变量指向类的唯一实例; (3)使用一个公有的静态方法获取该实例。
单例模式示例:
但这个版本有两个问题:
其一,是多线程不安全:
如果两个线程同时第一次调用getInstance(),
可能会引起同时new两次,出问题。
其二,是内存泄漏:
new出来的对象,没人delete,程序退出时不会自动释放。