設計模式之單例模式

單例模式簡介:所謂的單例模式就是你所定義的類,只會產生一個實例對象;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;    
        }    
    };    
相關文章
相關標籤/搜索