单件模式是设计模式中常用的设计模式,在很多大型系统设计时非常有用。其含义可以简单理解为全局范围内只保留一份唯一的使用实例,以下是C++实现的单件模式类,未考虑到多线程情况;
/*
文件名:SingletonType.h
作者 :Rambo
日期 :2009.11.25
说明 :单件模式类
主要用于全局范围内只产生一个唯一对象的场合
*/
#pragma once
template <class ClassName>
class CTSingletonType
{
public:
//获取全局唯一句柄
static ClassName * GetInstance()
{
if (NULL == m_pTypeObj)
{
m_pTypeObj = new ClassName;
}
return m_pTypeObj;
}
void ReleaseInstance()
{
if (NULL == m_pTypeObj)
{
return;
}
delete m_pTypeObj;
m_pTypeObj = NULL;
}
public:
CTSingletonType()
{
m_pTypeObj = (ClassName *) (this);
}
~CTSingletonType()
{
m_pTypeObj = NULL;
}
private:
static ClassName * m_pTypeObj;
};
template <class ClassName>
ClassName * CTSingletonType<ClassName>::m_pTypeObj = (ClassName *) (NULL);