一、单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
单例模式是对全局变量的一种改进。全局变量空间利用率比较低,且在项目中是一个不安全隐患,特别是在多线程程序中,会有很多的不可预测性;同时,使用全局变量,也不符合面向对象的封装原则。
二、实例
1、基础版本:
#include <iostream>
using namespace std;
class Singleton
{
public:
static Singleton *GetInstance()
{
if (m_Instance == NULL )
{
m_Instance = new Singleton ();
}
return m_Instance;
}
static void DestoryInstance()
{
if (m_Instance != NULL )
{
delete m_Instance;
m_Instance = NULL ;
}
}
int GetTest()//该函数用于测试
{
return m_Test;
}
private:
Singleton(){ m_Test = 10; }
static Singleton *m_Instance;//一个静态成员变量,程序结束时,系统会自动调用它的析构函数
int m_Test;
};
Singleton *Singleton ::m_Instance = NULL;
int main(int argc , char *argv [])
{
Singleton *singletonObj = Singleton ::GetInstance();
cout<<singletonObj->GetTest()<<endl