蝸牛的家
男兒當(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
博客園
模板提供:
滬江博客
久久久久久九九99精品
|
久久久久一级精品亚洲国产成人综合AV区
|
一本色综合久久
|
久久香蕉国产线看观看精品yw
|
俺来也俺去啦久久综合网
|
精品久久人人爽天天玩人人妻
|
久久这里有精品
|
久久久久久毛片免费播放
|
66精品综合久久久久久久
|
久久人人爽人人爽人人片AV高清
|
久久国产精品99精品国产
|
久久免费视频一区
|
色成年激情久久综合
|
无码人妻久久一区二区三区免费
|
久久久久综合中文字幕
|
国产精品岛国久久久久
|
亚洲日本va中文字幕久久
|
亚洲一区中文字幕久久
|
久久国产免费观看精品3
|
久久精品极品盛宴观看
|
久久播电影网
|
久久久久久久尹人综合网亚洲
|
亚洲综合日韩久久成人AV
|
亚洲综合久久夜AV
|
精品国产乱码久久久久久浪潮
|
国产成年无码久久久久毛片
|
久久久久久久精品成人热色戒
|
久久国产精品无码网站
|
久久av无码专区亚洲av桃花岛
|
亚洲人成网站999久久久综合
|
情人伊人久久综合亚洲
|
伊人久久精品线影院
|
91精品国产高清久久久久久国产嫩草
|
久久久久久亚洲Av无码精品专口
|
久久精品国产2020
|
亚洲精品tv久久久久久久久
|
日本免费久久久久久久网站
|
久久久久人妻一区精品色
|
精品久久久久久无码专区
|
国内精品久久久久久99蜜桃
|
亚洲?V乱码久久精品蜜桃
|