單例模式:一個類只生成一個實例對象。要從生成唯一一個實例,構造函數就要設爲私有,一般有兩種模式:一位餓漢式,只有在空的時候分配內存
class Singleton
{
private:
Singleton()
{}
static Singleton* instance;
public:
static Singlenton* getInstance()
{
if(install == NULL)
{
instance = new Singlenton;
}
return instance;
}
};
下面爲飽漢式:
class Singlenton
{
private:
Singlenton()
{}
static Singlenton* instance;
public:
static Singlenton* getInstance
{
return instance;
}
};
Singlenton* Singlenton::instance = new Singlenton;
在多個線程之間,用餓漢式,懶漢式不同線程之間不能同步,在大規模的系統中,爲了性能考慮,需要節省對象創建的時間時,可以採用單例模式。