設計模式之單例模式

2021-09-26 18:26:09 字數 1155 閱讀 8623

//單例模式:保證乙個類僅有乙個例項,並提供乙個訪問它的全部變數,

//主要解決:乙個全域性使用的類,頻繁的建立和銷毀,可以控制例項數目,節省系統資源,建構函式一定為私有的。

//實現方式:

//懶漢模式:第一次用到類的例項的時候才會去例項化

//餓漢模式:在單例類定義的時候去例項化

//各自的使用場景:在訪問量比較大,或者可能訪問的執行緒比較多的時候,採用餓漢模式,可以實現更好的效能,以空間換時間;在訪問量比較小的時候,採用懶漢模式,以時間換空間。

#include

#include

using namespace std;

#define lanhan

mutex g_lock;

#ifdef lanhan

//懶漢模式

class singleton ;

private:

static singleton* m_psingleton;

singleton(){};

singleton(const singleton& single)=delete;  

singleton& operator=(const singleton& single)=delete;

};singleton* singleton::m_psingleton = nullptr;

singleton* singleton::getinstance()

g_lock.unlock();

return m_psingleton;

}#else

//餓漢模式

class singleton ;

private:

static singleton* m_psingleton;

singleton(){};

singleton(const singleton& single)=delete;  

singleton& operator=(const singleton& single)=delete;

};singleton* singleton::m_psingleton = new singleton();

singleton* singleton::getinstance()

#endif

int main()

設計模式之單例模式

前一段時間買了一本秦小波寫的 設計模式之禪 網上對這書的評價很高。現在還沒有看很多,但是有些地方頗有感觸,也並不是所有的地方都能看懂,但是會慢慢研究的。自己對於設計模式的感覺就是乙個字 牛!感覺會23種設計模式並且會熟練運用的人,真的就是大師級的牛人了,設計模式是乙個專案主管或者架構師一定要會的東西...

設計模式之單例模式

package com.xie.singleton public class singleton 提供乙個共有的靜態的入口方法 public static singleton getinstance 懶漢式 延遲載入 提供乙個私有的靜態的成員變數,但不做初始化 private static sing...

設計模式之 單例模式

單例模式 singleton 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。單例模式 單件模式 使用方法返回唯一的例項 public class singleton private static singleton instance public static singleton geti...