一、单例模式
单例模式也叫单件模式。Singleton是一个非常常用的设计模式,几乎所有稍微大一些的程序都会使用它,所以构建一个高效的Singleton很重要。
1、单例类保证全局只有一个唯一实例对象
2、单例类提供获取这个唯一实例的接口。
我们都能想到一个简单的单例模式该怎样实现:构造函数声明为private或protec防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯一的实例。
先看一段代码
class Singleton
{
public:
//获取唯一对象实例的接口函数
static Singleton* GetInstance()
{
if(_sInstance==NULL)
{
_sInstance=new Singleton();
}
return _sInstance;
}
//删除示例对象
static void DelInstance()
{
if(_sInstance)
{
delete _sInstance;
_sInstance=NULL;
}
}
void Print()
{
cout<<_data<<endl;
}
private:
//构造函数定义为私有,限制只能在类内创建对象
Singleton()
:_data(0)
{}
Singleton(const Singleton&);
Singleton& operator=(const Singleton&);
//指向实例的指针定义为静态私有,这样定义静态成员函数获取对象实例
static