【设计模式】——单例模式

单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。一般咱们能够让一个全局变量使得一个对象被访问,但它不能访问你实例化多个对象。一个最好的办法,让类自身负责保存它的惟一的实例。这个类能够保证没有其余实例能够被建立,而且它能够提供一个访问该实例的方法。ios

#include <iostream>

using namespace std;
//Singleton类,定义一个GetInstance操做,容许客户访问它的惟一实例。GetInstance是一个静态方法,主要负责建立本身的惟一实例
class Singleton
{
private:
    //构造方法让其private,这就堵死了外界利用new建立此类实例的可能
    Singleton(){}
    static Singleton* instance;
public:
    //此方法是得到本类实例的惟一全局访问点
    static Singleton *GetInstance();
};
Singleton* Singleton::instance=NULL;
Singleton* Singleton::GetInstance()
{
    if(instance==NULL)
        instance=new Singleton();
    return instance;
}
int main()
{
    Singleton *t1=Singleton::GetInstance();
    Singleton *t2=Singleton::GetInstance();
    if(t1==t2)
        cout << "两个对象是相同的实例。" << endl;
    return 0;
}

单例模式由于Singleton类封装它的惟一实例,这样它能够严格控制客户怎样访问以及什么时候访问它。简单地说就是惟一实例的受控访问。spa

相关文章
相关标签/搜索