1. 程式人生 > >C++設計模式學習筆記01_單例類1

C++設計模式學習筆記01_單例類1

單例類_懶漢式和餓漢式設計

懶漢式,指的是設計出的這個類,只有在你呼叫公共的建立物件函式時,才會產生一個(也是唯一一個物件)

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出來