设计模式之单件模式

在单线程中实现代码很简单:
#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()这个函数去调用这个静态对象

posted on 2012-04-25 11:27 sheng 阅读(409) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

统计

常用链接

留言簿(1)

随笔档案

收藏夹

同行

搜索

最新评论

阅读排行榜

评论排行榜