单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。
在日常编程中,经常会有要求一个类智能有一个实例,比如说WINDOWS编程中,只需创建一个窗口,虽然可以通过全局变量使得只有一个对象可以被访问,但你不能防止类被实例化,一个更好的办法是让类自身保存它的唯一实例,保证没有其他实例可以被创建,并提供一个访问该唯一实例的方法。这就是单例模式。
单例模式的组成部分:
1、定义一个静态的GetInance方法,返回该类的唯一实例,
2、类定义一个自身的静态成员变量,只有当该类未实例化的时候创建该类的实例。
3、将类的构造函数定义成私有的,不允许外界访问构造函数,创建类的实例。
代码比较简单如下:
#include <iostream>
class Singleton
{
public:
~Singleton(){};
void show(){ std::cout << "This is a singleton class"; }
static Singleton* GetInstance();
private:
Singleton(){};
static Singleton* m_singleton;
};
#include"singleton.h