設計模式學習筆記(單例模式)

2021-08-08 02:26:38 字數 857 閱讀 8145

保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。

單例模式是對全域性變數的一種改進。全域性變數空間利用率比較低,且在專案中是乙個不安全隱患,特別是在多執行緒程式中,會有很多的不可**性;同時,使用全域性變數,也不符合物件導向的封裝原則。

1、基礎版本:

#include using namespace std;

class singleton

return m_instance;

} static void destoryinstance() }

int gettest()//該函式用於測試

private:

singleton()

static singleton *m_instance;//乙個靜態成員變數,程式結束時,系統會自動呼叫它的析構函式

int m_test;

};singleton *singleton ::m_instance = null;

int main(int argc , char *argv )

int gettest()

private:

singleton();

int m_test;

};int main(int argc , char *argv )

~lock()

};

class singleton

;

singleton* singleton::pinstance = 0;

singleton* singleton::instantialize()

} return pinstance;

}

設計模式學習筆記 單例模式

定義 確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。單例模式的通用類圖如下 如下 public class singleton public static singleton getinstance public void dosomething 這裡需要注意幾個地方 1 要定義...

設計模式 單例模式(學習筆記)

經典單例模式原理 1 單例模式 確保乙個類最多只有乙個例項,並提供乙個全域性訪問點 2 單例模式的意義 有些物件我們只需要乙個 執行緒池,快取,硬體設別等。如果多個例項會造成衝突 結果的不一致性等問題。使用靜態不變數方式來實現,或者使用全域性變數。3 單例模式類圖 經典單例模式存在的問題 改進方案 ...

設計模式學習筆記 單例模式

單例模式 保證乙個類有且只有乙個例項,並提供乙個訪問該例項的全域性訪問點。要提供乙個全域性訪問點,最常用的辦法便是使用類的靜態方法,靜態方法只能從類而不是從例項中呼叫。從理解上還是比較方便理解的,特別在想象了單例模式的實際應用情況後,當乙個物件在系統中獨一無二,只能有乙個的時候,比如乙個列印裝置,乙...