知识点
单件(singleton)
知识内容
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
示例
#include<iostream>
using namespace std;
class Singleton
{
private:
static Singleton* uniqueInstance;
int singletonData;
protected:
Singleton(int mySingletonData):singletonData(mySingletonData){};
public:
static Singleton* Instance(int mySingleData)
{
if (uniqueInstance == nullptr)
{
uniqueInstance = new Singleton(mySingleData);
}
return uniqueInstance;
}
void SingletonOperation()
{
cout << "exec singleton operation..." << endl;
}
int GetSingletonData()
{
return this -> singletonData;
}
};
Singleton* Singleton::uniqueInstance = nullptr;
int main()
{
int i = 10;
Singleton* singleton = Singleton::Instance(i);
singleton -> SingletonOperation();
cout << singleton -> GetSingletonData() << endl;
i = 12;
Singleton* singleton1 = Singleton::Instance(i);
singleton1 -> SingletonOperation();
cout << singleton1 -> GetSingletonData() << endl;
return 0;
}
链接
https://github.com/xierensong/learngit/blob/master/DPattern/10/1.cpp