C++設計模式學習筆記01_單例類1
阿新 • • 發佈:2018-12-13
單例類_懶漢式和餓漢式設計
懶漢式,指的是設計出的這個類,只有在你呼叫公共的建立物件函式時,才會產生一個(也是唯一一個物件)
class Singelten { public: static Singelten * get_singelten() //公有的靜態函式 { if (m_psl == NULL) { m_psl = new Singelten; return m_psl; } else { return m_psl; } } static void free_singelten() //free操作的返回為void { if (m_psl != NULL) { delete m_psl; m_psl = NULL; } } private: //私有的建構函式 Singelten() { } private: static Singelten *m_psl; //靜態成員變數 }; Singelten *Singelten::m_psl = NULL; //靜態的成員變數的初始化必須在類的外部進行
餓漢式,指的是當程式執行時,就產生一個(唯一一個)物件,當呼叫函式時,將類的成員變數返回出去
class Singelten { public: static Singelten * get_singelten() { return m_psl; } static void free_singelten() { if (m_psl != NULL) { delete m_psl; m_psl = NULL; } } private: Singelten() { } private: static Singelten *m_psl; }; Singelten *Singelten::m_psl = new Singelten; //直接將物件new出來