C++设计模式 单例
时间: 2023-10-15 17:07:52 浏览: 123
单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供全局访问点以获取该实例。
在使用单例模式时,通常会有一个私有的静态成员变量来保存唯一的实例,并提供一个公共的静态方法来获取该实例。该方法会在首次调用时创建实例,并在后续调用时返回已创建的实例。
以下是一个示例实现单例模式的代码:
```c
class Singleton {
private:
static Singleton* instance;
// 私有构造函数,防止通过 new 创建实例
Singleton() {}
public:
static Singleton* getInstance() {
if (instance == nullptr) {
instance = new Singleton();
}
return instance;
}
// 其他成员函数
};
// 在类外初始化静态成员变量
Singleton* Singleton::instance = nullptr;
int main() {
Singleton* singleton = Singleton::getInstance();
// 使用 singleton 实例...
return 0;
}
```
在上述示例中,通过 `getInstance` 方法获取 `Singleton` 类的实例。如果实例还未创建,则在首次调用时创建实例,之后的调用都会返回同一个实例。
需要注意的是,单例模式可能会导致全局状态和依赖关系的增加,因此应谨慎使用。此外,在多线程环境下使用单例模式时需要考虑线程安全性。
阅读全文