目录
C++设计模式-单件(Singleton)
一、意图
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
二、适用性
- 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
- 当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
三、结构
四、参与者
- Singleton
定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类操作。
可能负责创建它自己的唯一实例。
五、代码
cpp
#include<iostream>
using namespace std;
class Singleton {
public:
static Singleton* GetInstance() {
if (instance == nullptr) {
instance = new Singleton;
}
return instance;
}
private:
Singleton(){}
static Singleton* instance;
};
Singleton* Singleton::instance = nullptr;
int main() {
Singleton* s1 = Singleton::GetInstance();
Singleton* s2 = Singleton::GetInstance();
cout << "s1 address : " << s1 << endl;
cout << "s2 address : " << s2 << endl;
return 0;
}