单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。
下面是单例模式的UML图
C++实现代码如下:
/*
* Copyright (c) 2017 initm.com All rights reserved.
* 作者: Stupid
* 描述: 单例模式
* 完成时间: 2017-11-13 22:28
*/
#include <QCoreApplication>
#include <iostream>
#include <cstdlib>
class Singleton
{
private:
static Singleton* instance;
Singleton(){
}
public:
static Singleton* GetInstance(){
if(!instance){
try{
instance = new Singleton;
}catch(std::bad_alloc){
exit(-1);
}
}
return instance;
}
};
Singleton* Singleton::instance = nullptr;
int main(int argc, char *argv[])
{
system("chcp 65001");
QCoreApplication a(argc, argv);
Singleton* s1 = Singleton::GetInstance();
Singleton* s2 = Singleton::GetInstance();
if(s1 == s2){
std::cout << "同一个对象" << std::endl;
}
return a.exec();
}
单例模式保证全局只有一个该类的对象。