蝸牛的家
男兒當(dāng)自強(qiáng)
C++博客
首頁(yè)
新文章
新隨筆
聚合
管理
posts - 48, comments - 21, trackbacks - 0
C++設(shè)計(jì)模式-Singleton
意圖:
保證一個(gè)類(lèi)僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)他的全局訪問(wèn)點(diǎn)
適用:
當(dāng)類(lèi)只能有一個(gè)實(shí)例,而且客戶可以從一個(gè)眾所周知的的訪問(wèn)點(diǎn)訪問(wèn)它時(shí)
當(dāng)這個(gè)唯一實(shí)例應(yīng)該是通過(guò)子類(lèi)化可擴(kuò)展的,并且客戶應(yīng)該無(wú)需更改代碼就能使用一個(gè)擴(kuò)展的實(shí)例時(shí)
UML圖:
解析:提供唯一的類(lèi)的實(shí)例,但多線程下不一定安全
//
test.h
/**/
////////////////////////////////////////////////////////////////////////
//
class
Singleton
{
public
:
Singleton()
{}
~
Singleton()
{}
//
靜態(tài)成員函數(shù),提供全局的訪問(wèn)接口
static
Singleton
*
GetInstancePtr();
void
test();
private
:
//
靜態(tài)成員變量,提供全局的唯一實(shí)例
static
Singleton
*
m_pStatic;
}
;
//
test.cpp : Defines the entry point for the console application.
//
#include
"
stdafx.h
"
#include
<
iostream
>
#include
"
stdlib.h
"
#include
"
test.h
"
using
namespace
std;
/**/
////////////////////////////////////////////////////////////////////////
//
Singleton
*
Singleton::m_pStatic
=
NULL;
Singleton
*
Singleton::GetInstancePtr()
{
if
(NULL
==
m_pStatic)
{
m_pStatic
=
new
Singleton;
}
return
m_pStatic;
}
void
Singleton::test()
{
cout
<<
"
test\n
"
;
}
/**/
////////////////////////////////////////////////////////////////////////
//
int
main(
int
argc,
char
*
argv[])
{
//
直接通過(guò)全局訪問(wèn)點(diǎn)訪問(wèn)
Singleton::GetInstancePtr()
->
test();
system(
"
pause
"
);
return
0
;
}
另一種與其相似的模式為monostate模式,將類(lèi)中的所有數(shù)據(jù)聲明為static即保持?jǐn)?shù)據(jù)的狀態(tài)唯一
posted on 2008-08-17 01:37
黑色天使
閱讀(258)
評(píng)論(0)
編輯
收藏
引用
所屬分類(lèi):
設(shè)計(jì)模式
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開(kāi)源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
decorator模式
MVC模式理解——當(dāng)年給我一個(gè)browser多好(轉(zhuǎn))
C++設(shè)計(jì)模式-趣解
C++設(shè)計(jì)模式-visitor
C++設(shè)計(jì)模式-Memento
C++模式-Iterator
C++設(shè)計(jì)模式-Observer
C++設(shè)計(jì)模式-Command
C++模式-FlyWeight
C++設(shè)計(jì)模式-ChainOfResponsibility
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
<
2025年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(2)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類(lèi)
C\C++(8)
Hacker(1)
STL
VC&MFC(4)
操作系統(tǒng)(1)
多進(jìn)程&多線程
流媒體開(kāi)發(fā)
內(nèi)存管理技術(shù)(2)
軟件工程(1)
設(shè)計(jì)模式(20)
數(shù)據(jù)結(jié)構(gòu)&算法(2)
網(wǎng)絡(luò)開(kāi)發(fā)(3)
隨筆檔案
2011年4月 (1)
2011年3月 (2)
2009年7月 (1)
2009年6月 (2)
2009年3月 (1)
2009年2月 (3)
2009年1月 (3)
2008年12月 (5)
2008年11月 (1)
2008年10月 (3)
2008年9月 (3)
2008年8月 (23)
文章檔案
2011年3月 (1)
2009年6月 (1)
2008年11月 (1)
搜索
最新評(píng)論
1.?re: C++設(shè)計(jì)模式-Observer
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--no7dw
2.?re: YUV格式詳細(xì)解釋與FFMPEG的關(guān)系
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--windsome
3.?re: 鍵盤(pán)過(guò)濾驅(qū)動(dòng)源代碼
@soul
再怎么懶也應(yīng)該自己實(shí)現(xiàn)一部分吧
--黑色天使
4.?re: 鍵盤(pán)過(guò)濾驅(qū)動(dòng)源代碼[未登錄](méi)
再怎么懶也該加上unload例程吧
--soul
5.?re: CHttpDownLoad Beta 1.0
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--tangxinfa
閱讀排行榜
1.?RGB、YUY2、YUYV、YVYU、UYVY與AYUV(轉(zhuǎn))(6703)
2.?YUV格式詳細(xì)解釋與FFMPEG的關(guān)系(4320)
3.?如何檢測(cè)內(nèi)存泄漏(轉(zhuǎn))(3908)
4.?memcpy的BUG(2730)
5.?內(nèi)存池技術(shù)學(xué)習(xí)筆記(2361)
評(píng)論排行榜
1.?CHttpDownLoad Beta 1.0(10)
2.?memcpy的BUG(5)
3.?事件模型SOCKET封裝(2)
4.?鍵盤(pán)過(guò)濾驅(qū)動(dòng)源代碼(2)
5.?C++設(shè)計(jì)模式-Observer(1)
Copyright ©2025 黑色天使 Powered By
博客園
模板提供:
滬江博客
久久精品国产亚洲网站
|
久久久久国产一级毛片高清版
|
久久综合丝袜日本网
|
久久亚洲欧洲国产综合
|
亚洲国产美女精品久久久久∴
|
久久精品国产欧美日韩
|
中文国产成人精品久久不卡
|
9191精品国产免费久久
|
亚洲午夜久久久影院
|
亚洲精品乱码久久久久66
|
久久精品国产福利国产琪琪
|
999久久久国产精品
|
久久免费小视频
|
久久www免费人成看国产片
|
中文精品久久久久国产网址
|
国产精品视频久久久
|
国产69精品久久久久99尤物
|
久久久受www免费人成
|
久久久久国产一区二区三区
|
久久久久亚洲AV无码专区网站
|
亚洲另类欧美综合久久图片区
|
午夜精品久久久久9999高清
|
伊人情人综合成人久久网小说
|
久久亚洲春色中文字幕久久久
|
久久久婷婷五月亚洲97号色
|
91久久香蕉国产熟女线看
|
伊人久久无码精品中文字幕
|
国产亚洲美女精品久久久2020
|
伊人热人久久中文字幕
|
欧美一区二区久久精品
|
国产精品久久一区二区三区
|
精品久久久久久国产潘金莲
|
久久久久亚洲av毛片大
|
久久精品国内一区二区三区
|
久久亚洲2019中文字幕
|
欧美一区二区精品久久
|
国产精品久久久久久福利漫画
|
中文字幕久久亚洲一区
|
久久夜色撩人精品国产小说
|
久久综合久久鬼色
|
久久99这里只有精品国产
|