2.1 設計模式之單例模式
阿新 • • 發佈:2018-10-31
單例模式
餓漢式與懶漢式程式碼
class singleTon { private: singleTon() {} ~singleTon() {} public: static singleTon* getInstance() { if(NULL == instance_ ) // 多執行緒的情況下需要加鎖 instance_ = new singleTon(); return instance_; } private: //用於自動回收 class garbo { public: ~garbo() { if (instance_ != NULL) { delete instance_; } } }; private: static singleTon* instance_; static garbo garbo_; }; #ifndef LAZY_MODE // 沒有定義懶漢式初始化 singleTon* singleTon::instance_ = new singleTon(); #endif // !LAZY_MODE singleTon::garbo singleTon::garbo_; void test_singleTon(){ singleTon::getInstance(); }