單例模式簡介:所謂的單例模式就是你所定義的類,只會產生一個實例對象;ios
產生單例模式的方式:一種是懶漢式,一種是餓漢式。函數
懶漢式:就是在你須要使用相應的對象時纔去建立。spa
餓漢式:就是在你程序運行之時便已經建立了相應的對象。對象
兩種方法中都須要將構造函數私有化。blog
懶漢式的實現參考程序:get
#include <iostream> using namespace std; class A { public : static A* get_obj_handle(void); private : A(); private : static A * m_a; }; A* A::m_a = NULL; A::A() { cout << "using A constructor " << endl; } A* A::get_obj_handle(void) { if (NULL == m_a) { m_a = new A(); } return m_a; } int main(int argc, char *argv[]) { A * a = NULL; for (int i = 0; i < 10; ++i) { a = A::get_obj_handle(); cout << "This a = " << a << endl; } return 0; }
餓漢式的實現參考程序io
class A { private: A() { } public: static A * GetInstance() { static A instance; return &instance; } };