单例模式(Singleton):保证一个类仅有一个示例,并提供一个访问他的全局访问点。
通常我们可以让一个全局变量使得一个对象被访问,但他不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存他的唯一实例。这个刘可以保证没有其他实例可以被创建,并且他可以提供一个访问该实例的方法。
class CSingleton
{
public:
~CSingleton(void);
static CSingleton *GetInstance();
private:
CSingleton(void);
static CSingleton *m_pInstance;
};
// Singleton.cpp
CSingleton *CSingleton::m_pInstance = NULL;
CSingleton::CSingleton(void)
{
}
CSingleton::~CSingleton(void)
{
}
CSingleton *CSingleton::GetInstance()
{
if (m_pInstance == NULL)
{
// 互斥处理 lock(SyscRoot)
{
if (m_pInstance == NULL)
m_pInstance = new CSingleton;
}
}
return m_pInstance;
}