文章目录
一、模式定义与核心价值
单例模式是一种创建型设计模式,确保一个类只有一个实例存在,并提供该实例的全局访问点。该模式的核心价值体现在:
- 资源统一管理(如配置管理器)
- 防止重复创建(如线程池/连接池)
- 全局访问控制(如日志系统)
- 共享资源协调(如打印机设备)
二、模式结构解析
class Singleton {
private:
static Singleton* instance; // 静态实例指针
Singleton() {
} // 私有构造函数
// 禁止拷贝和赋值
Singleton(const Singleton&) = delete;
Singleton& operator=(const Singleton&) = delete;
public:
static Singleton* getInstance() {
if (!instance) {
instance = new Singleton();
}
return instance;
}
};
三、关键实现技术演进
1. 基础版(非线程安全)
class BasicSingleton {
// ... 同上基础结构 ...
};
2. 线程安全版(双重检查锁)
#include <mutex>
class ThreadSafeSingleton {
private:
static std::atomic<ThreadSafeSingleton*> insta