通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。
例如特定情况下的相机、运动控制卡等硬件实例都可以用单例,避免出现重新构造时出错。
一般使用饿汉模式, 在类加载时就完成了初始化,所以类加载比较慢、获取对象的速度快、以空间换取时间模式、线程安全。
#include "pch.h"
#include <iostream>
using namespace std;
Singleon* Singleon::instance = new Singleon();
class Singleon
{
private:
Singleon()
{
cout << "Singleon()" << endl;
}
static Singleon* instance;
public:
static Singleon* GetSingleon()
{
return instance;
}
static Singleon* Destroy()
{
delete instance;
instance = NULL;
}
};
int main()
{
Singleon* sl1 = Singleon::GetSingleon();
Singleon* sl2 = Singleon::GetSingleon();
Singleon* sl3 = Singleon::GetSingleon();
cout << sl1 << endl;
cout << sl2 << endl;
cout << sl2 << endl;
system("pause");
return 0;
}