青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

那誰的技術(shù)博客

感興趣領(lǐng)域:高性能服務(wù)器編程,存儲,算法,Linux內(nèi)核
隨筆 - 210, 文章 - 0, 評論 - 1183, 引用 - 0
數(shù)據(jù)加載中……

常見設(shè)計模式的解析和實現(xiàn)(C++)之五-Singleton模式

作用:保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。

UML結(jié)構(gòu)圖:


解析:
Singleton模式其實是對全局靜態(tài)變量的一個取代策略,上面提到的Singleton模式的兩個作用在C++中是通過如下的機制實現(xiàn)的:1)僅有一個實例,提供一個類的靜態(tài)成員變量,大家知道類的靜態(tài)成員變量對于一個類的所有對象而言是惟一的 2)提供一個訪問它的全局訪問點,也就是提供對應(yīng)的訪問這個靜態(tài)成員變量的靜態(tài)成員函數(shù),對類的所有對象而言也是惟一的.在C++中,可以直接使用類域進(jìn)行訪問而不必初始化一個類的對象.
下面的實現(xiàn)其實是Singleton的一個簡單實現(xiàn),并不是特別的通用,一般的,如果一個項目中需要使用到Singleton模式比較多的話,那么一般會實現(xiàn)一個Singleton的模板類,模板類的模板參數(shù)是需要采用Singleton模式的類,比如這樣實現(xiàn):
template<typename?T>
class?Singleton
{
//.類的聲明
}
;

//?需要采用singleton模式的類
class?Test
???:?
public?Singleton<Test>
{
//?類的聲明
}
;

但是,下面的實現(xiàn)還是采用最簡單的實現(xiàn)辦法,起的是演示的作用

實現(xiàn):
1)Singleton.h
/********************************************************************
????created:????2006/07/20
????filename:?????Singleton.h
????author:????????李創(chuàng)
????????????????
http://www.shnenglu.com/converse/

????purpose:????Singleton模式的演示代碼
********************************************************************
*/


#ifndef?SINGLETON_H
#define?SINGLETON_H

class?Singleton
{
public:
????Singleton()
{};
????
~Singleton(){};

????
//?靜態(tài)成員函數(shù),提供全局訪問的接口
????static?Singleton*?GetInstancePtr();
????
static?Singleton??GetInstance();

????
void?Test();

private:
????
//?靜態(tài)成員變量,提供全局惟一的一個實例
????static?Singleton*?m_pStatic;
}
;

#endif

2)Singleton.cpp
/********************************************************************
????created:????2006/07/20
????filename:?????Singleton.cpp
????author:????????李創(chuàng)
????????????????
http://www.shnenglu.com/converse/

????purpose:????Singleton模式的演示代碼
********************************************************************
*/


#include?
"Singleton.h"
#include?
<iostream>

//?類的靜態(tài)成員變量要在類體外進(jìn)行定義
Singleton*?Singleton::m_pStatic?=?NULL;

Singleton
*?Singleton::GetInstancePtr()
{
????
if?(NULL?==?m_pStatic)
????
{
????????m_pStatic?
=?new?Singleton();
????}


????
return?m_pStatic;
}


Singleton?Singleton::GetInstance()
{
????
return?*GetInstancePtr();
}


void?Singleton::Test()
{
????std::cout?
<<?"Test!\n";
}

3)Main.cpp
/********************************************************************
????created:????2006/07/20
????filename:?????Main.cpp
????author:????????李創(chuàng)
????????????????
http://www.shnenglu.com/converse/

????purpose:????Singleton模式的測試代碼
********************************************************************
*/


#include?
"Singleton.h"
#include?
<stdlib.h>

int?main()
{
????
//?不用初始化類對象就可以訪問了
????Singleton::GetInstancePtr()->Test();
????Singleton::GetInstance().Test();

????system(
"pause");

????
return?0;
}

posted on 2006-07-21 14:27 那誰 閱讀(3795) 評論(7)  編輯 收藏 引用 所屬分類: 設(shè)計模式

評論

# re: 常見設(shè)計模式的解析和實現(xiàn)(C++)之五-Singleton模式   回復(fù)  更多評論   

可以把Singleton(){};申明成protect,這樣避免調(diào)用者錯誤的初始化
2006-08-14 14:04 | rdcfeca

# re: 常見設(shè)計模式的解析和實現(xiàn)(C++)之五-Singleton模式   回復(fù)  更多評論   

這個。。好像可以生成N多對象吧
2009-03-03 14:18 | no

# re: 常見設(shè)計模式的解析和實現(xiàn)(C++)之五-Singleton模式   回復(fù)  更多評論   

那個new出來的對象要在那里刪除那???
2009-12-11 18:44 | palen

# re: 常見設(shè)計模式的解析和實現(xiàn)(C++)之五-Singleton模式   回復(fù)  更多評論   

@palen
那個不需要刪除,不是內(nèi)存泄漏
2009-12-15 14:58 | Joshua Zhu

# re: 常見設(shè)計模式的解析和實現(xiàn)(C++)之五-Singleton模式   回復(fù)  更多評論   

Singleton模式的用處是保證一個類只有一個唯一的實例,而且提供一個全局的訪問點。
博主這個類可以生成很多對象,并沒有保證類的實例的唯一性。
應(yīng)將構(gòu)造函數(shù)聲明為private 或者 protected
2011-04-22 16:00 | zhanglistar

# re: 常見設(shè)計模式的解析和實現(xiàn)(C++)之五-Singleton模式   回復(fù)  更多評論   

似乎簡化了很多哦 很感謝
2011-06-16 13:57 | Skill

# re: 常見設(shè)計模式的解析和實現(xiàn)(C++)之五-Singleton模式   回復(fù)  更多評論   

@zhanglistar
不會生產(chǎn)多個的,有static修飾,而且有null判斷。在構(gòu)造里加打印,可以看到只有一次打印。
2013-10-30 11:01 | angelzlz
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            美女精品自拍一二三四| 欧美激情第9页| 欧美一区在线看| 亚洲国产视频直播| 亚洲午夜在线观看| 亚洲三级视频| 欧美在线视频二区| 亚洲欧美日韩精品在线| 美女精品自拍一二三四| 久久久久国产精品一区二区| 欧美精品在线观看播放| 母乳一区在线观看| 国产主播精品在线| 午夜精品一区二区在线观看| 亚洲午夜精品久久| 欧美精品国产精品| 亚洲国产婷婷香蕉久久久久久| 韩国v欧美v日本v亚洲v| 午夜激情亚洲| 欧美亚洲日本国产| 国产精品国色综合久久| 日韩亚洲不卡在线| 国产精品第2页| 欧美日韩综合在线免费观看| 亚洲图片欧美一区| 欧美精品久久99久久在免费线| 免费一区视频| 在线观看视频一区二区| 久久精品在线播放| 另类春色校园亚洲| 精品91在线| 久久婷婷久久| 亚洲大胆美女视频| 99国产精品国产精品久久| 欧美精品亚洲精品| 日韩亚洲国产精品| 亚洲一区二区三区精品动漫| 欧美三级网页| 亚洲综合日本| 猫咪成人在线观看| 亚洲乱码国产乱码精品精| 欧美日韩成人激情| 亚洲深夜福利在线| 久久久亚洲影院你懂的| 亚洲大片精品永久免费| 免费久久99精品国产自在现线| 91久久精品视频| 欧美在线视频二区| 欧美一区久久| 影音先锋亚洲电影| 免费中文字幕日韩欧美| 亚洲欧洲三级电影| 亚洲男人天堂2024| 国产亚洲在线观看| 欧美阿v一级看视频| 99热免费精品在线观看| 久久国产一区二区| 亚洲黄色一区| 国产精品久久久久久久久久免费| 亚洲欧美一区二区激情| 免费成人网www| 亚洲色图自拍| 黄色日韩精品| 欧美三级午夜理伦三级中视频| 亚洲欧美日韩在线观看a三区| 欧美成va人片在线观看| 亚洲免费在线播放| 亚洲国产aⅴ天堂久久| 欧美性片在线观看| 久久婷婷国产综合尤物精品| 欧美日韩亚洲视频一区| 一色屋精品视频在线看| 亚洲精品一区二区三区福利| 欧美日韩亚洲精品内裤| 欧美一区二区三区视频| 亚洲国产精品电影| 欧美资源在线观看| 一本久久a久久免费精品不卡| 国产精品揄拍一区二区| 欧美激情bt| 久久精品国产一区二区三区免费看 | 亚洲色图自拍| 亚洲福利视频免费观看| 国产精品男女猛烈高潮激情 | 国产日产精品一区二区三区四区的观看方式 | 麻豆av一区二区三区| 亚洲一区二区三区成人在线视频精品| 欧美1区免费| 久久久久国产精品www| 亚洲综合视频一区| 洋洋av久久久久久久一区| 极品日韩久久| 国产欧美在线看| 欧美体内she精视频| 欧美黄色aaaa| 国产精品久久久久久模特| 亚洲六月丁香色婷婷综合久久| 欧美日韩精品二区第二页| 欧美一级视频| 亚洲一区二区精品在线观看| 亚洲卡通欧美制服中文| 亚洲大胆女人| 快射av在线播放一区| 久久国产精品网站| 午夜久久一区| 亚洲欧美日韩在线观看a三区| 99re国产精品| 99国产精品久久久久久久| 亚洲日本电影在线| 亚洲日本中文字幕| 亚洲精品一区二区网址| 亚洲日本中文字幕免费在线不卡| 亚洲动漫精品| 亚洲欧洲三级电影| 亚洲精品综合| 在线视频你懂得一区二区三区| 99www免费人成精品| 一本久久a久久精品亚洲| 亚洲精品自在在线观看| 亚洲激情专区| 蜜臀99久久精品久久久久久软件 | 亚洲国产精品黑人久久久| 免费永久网站黄欧美| 免费观看成人| 亚洲电影在线播放| 亚洲精品一区二区三区福利| 日韩亚洲欧美一区| 国产精品99久久久久久久女警| 亚洲男人天堂2024| 久久久久久69| 欧美理论电影网| 国产精品黄色| 激情欧美日韩一区| 亚洲精品一区二区三区不| 亚洲伊人久久综合| 久久久久久欧美| 亚洲大片一区二区三区| 亚洲最新在线视频| 欧美在线看片| 欧美r片在线| 国产精品亚洲产品| 在线精品视频免费观看| 一本一本a久久| 久久久久久91香蕉国产| 亚洲国产精品va在线看黑人动漫 | 你懂的国产精品永久在线| 亚洲精品一区二区在线观看| 亚洲欧美日韩综合国产aⅴ| 久久亚洲精品中文字幕冲田杏梨| 欧美日韩二区三区| 国产一区视频网站| 99ri日韩精品视频| 久久亚洲春色中文字幕久久久| 亚洲电影在线| 欧美在线一二三四区| 欧美日韩国产色综合一二三四| 国产乱码精品一区二区三区不卡| 亚洲国产另类 国产精品国产免费| 亚洲一区二区三区乱码aⅴ| 免费国产一区二区| 亚洲一区二区三区成人在线视频精品| 狂野欧美激情性xxxx欧美| 国产精品理论片| 欧美成人一区二区三区片免费| 欧美www视频在线观看| 亚洲综合电影一区二区三区| 久久噜噜噜精品国产亚洲综合| 亚洲黄网站黄| 久久精品免费电影| 国产精品视频免费观看www| 亚洲精品国产精品乱码不99| 久久黄色网页| 一本色道久久综合亚洲91| 久久综合色播五月| 国产一区二区三区在线观看网站| 亚洲午夜在线观看| 亚洲欧洲精品一区二区精品久久久| 欧美影院久久久| 国产视频在线观看一区二区三区| 一区二区三区视频在线| 欧美激情一二区| 久久久综合激的五月天| 国产一本一道久久香蕉| 欧美在线视频免费| 亚洲一区二区三区激情| 国产精品九九久久久久久久| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲国产精品传媒在线观看| 欧美在线一区二区| 国产精品区二区三区日本| 亚洲色图自拍| 一本色道久久综合亚洲精品小说 | 久久久噜噜噜| 国内揄拍国内精品少妇国语| 久久国内精品自在自线400部| 亚洲免费视频网站| 国产精品一区久久久久| 欧美亚洲综合久久| 午夜日本精品| 激情婷婷久久|