單例模式及C++實現(xiàn)代碼
單例模式4種實現(xiàn)詳解
c++11改進(jìn)我們的模式之改進(jìn)單例模式
單例模式(Singleton Pattern)屬于創(chuàng)建型模式实檀,它提供了一種創(chuàng)建對象的最佳方式打瘪。
這種模式涉及到一個單一的類誊册,該類負(fù)責(zé)創(chuàng)建自己的對象,同時確保只有單個對象被創(chuàng)建苍狰。這個類提供了一種訪問其唯一的對象的方式楚里,可以直接訪問,不需要實例化該類的對象从祝。
注意:
1、單例類只能有一個實例引谜。
2、單例類必須自己創(chuàng)建自己的唯一實例擎浴。
3员咽、單例類必須給所有其他對象提供這一實例。
#include <iostream>
using namespace std;
class Singleton {
public :
//靜態(tài)方法贮预,通過外部調(diào)用此函數(shù)來獲得Singleton*對象指針
static Singleton* getInstance(){
if(NULL==uniqueInstance){
uniqueInstance = new Singleton;
}
return uniqueInstance;
}
private:
Singleton();//構(gòu)造函數(shù)私有贝室,則禁止在類外部創(chuàng)建成員對象
static Singleton *uniqueInstance;
};
Singleton *Singleton::uniqueInstance = NULL;
int main(int argc, char *argv[])
{
Singleton *singletonObj = Singleton::getInstance();
delete singletonObj;
return 0;
}