设计模式之单件模式

设计模式之单件模式

在单线程中实现代码很简单:
#include  " stdafx.h "
#include 
< iostream >
#include 
" boost/shared_ptr.hpp "
using   namespace  std;
using   namespace  boost;

class  singleTon {
public:
    
static singleTon *getInstance(){
        
if (mySingleton.get() == NULL)
        
{
            mySingleton 
= shared_ptr<singleTon>(new singleTon());
            
return mySingleton.get();
        }

        
else
        
{
            
return mySingleton.get();
        }

            

    }
;
private:
    
static shared_ptr<singleTon>mySingleton;
    singleTon()
    
{
        std::cout
<<"singletom has been created!"<<std::endl;
    }
;
}
;
shared_ptr
< singleTon > singleTon::mySingleton  =  shared_ptr < singleTon > ();


int  _tmain( int  argc, _TCHAR *  argv[])
{

    
for(int i = 0; i < 100; i++)
    
{
        singleTon::getInstance();
    }

    
return 0;
}


这里利用shared_ptr来进行资源管理。
这个设计模式的思想就是在类中设置一个静态对象,然后用singleTon::getInstance()这个函数去调用这个静态对象

你可能感兴趣的:(设计模式之单件模式)