C++设计模式中单例模式是什么
时间: 2023-10-16 07:58:49 浏览: 112
Delphi设计模式讲解代码示例讲解
单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问该实例。
在单例模式中,类的构造函数被限制为私有,这样其他类不能直接实例化该类。而是通过提供一个静态方法来获取该类的唯一实例。这个静态方法会检查是否已经存在一个实例,如果已经存在,则返回该实例;如果不存在,则创建一个新的实例并返回。
单例模式通常用于需要在整个系统中共享资源或状态的情况。它可以避免多个实例的创建,节省系统资源,并提供了一种方便的访问方式。
以下是一个使用C++实现的简单单例模式示例:
```cpp
class Singleton {
private:
static Singleton* instance;
// 将构造函数设为私有,防止其他类直接实例化
Singleton() {}
public:
// 提供获取唯一实例的静态方法
static Singleton* getInstance() {
if (instance == nullptr) {
instance = new Singleton();
}
return instance;
}
};
Singleton* Singleton::instance = nullptr;
```
在上面的示例中,类`Singleton`的构造函数被设为私有,只能通过静态方法`getInstance()`来获取唯一实例。如果实例不存在,则创建一个新的实例并返回。通过调用`Singleton::getInstance()`方法,可以在系统中任何地方获取`Singleton`类的唯一实例。
阅读全文