单例模式及C++实现代码
单例模式4种实现详解
c++11改进我们的模式之改进单例模式
单例模式(Singleton Pattern)属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
注意:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
#include <iostream>
using namespace std;
class Singleton {
public :
//静态方法,通过外部调用此函数来获得Singleton*对象指针
static Singleton* getInstance(){
if(NULL==uniqueInstance){
uniqueInstance = new Singleton;
}
return uniqueInstance;
}
private:
Singleton();//构造函数私有,则禁止在类外部创建成员对象
static Singleton *uniqueInstance;
};
Singleton *Singleton::uniqueInstance = NULL;
int main(int argc, char *argv[])
{
Singleton *singletonObj = Singleton::getInstance();
delete singletonObj;
return 0;
}