青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
Mike's blog
C++博客
::
首頁
::
聯(lián)系
::
聚合
::
管理
0 Posts :: 23 Stories :: 83 Comments :: 0 Trackbacks
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(17)
給我留言
查看公開留言
查看私人留言
我參與的團隊
文章分類
C/C++(18)
Database(14)
LINUX(2)
OS(1)
Other(1)
文章檔案
2010年8月 (5)
2010年7月 (2)
2009年5月 (1)
2009年3月 (2)
2009年2月 (1)
2009年1月 (1)
2008年12月 (3)
2008年11月 (4)
2008年10月 (3)
2008年2月 (1)
搜索
最新評論
1.?re: MYSQL外鍵(Foreign Key)的使用
通俗易懂
--666
2.?re: MYSQL外鍵(Foreign Key)的使用
很棒哦
--撒
3.?re: C和C++之間庫的互相調(diào)用
評論內(nèi)容較長,點擊標題查看
--maxwell
4.?re: MYSQL外鍵(Foreign Key)的使用
this is good!
--wzz
5.?re: C和C++之間庫的互相調(diào)用
C++庫中含有類的情況希望能總結下哈,已轉載
--藝搜天下
常見設計模式之單件類(Singleton)
所謂的單件類就是保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。
Singleton可以看作是一種經(jīng)過改進的全局變量,既在一個進程中只能有唯一的實例,不允許產(chǎn)生第二個這樣的對象。
雖然單件類是最簡單的設計模式,但仍需小心使用,主要需注意:
1.構造函數(shù)
既然是只能有一個實例,那么構造函數(shù)自然不能被外部隨意調(diào)用,所以需要將其聲明為私有(private),包括默認構造、拷貝構造及賦值操作。至于是否需要實現(xiàn)要看具體應用。實例的產(chǎn)生需要一個輔助的成員函數(shù)(類似getInstance或creatInstance)。
2.析構函數(shù)
需要定義全局唯一的變量,我們首先會想到的就是靜態(tài)(static),沒錯,單件類也是通過靜態(tài)成員指針變量來實現(xiàn)單一。我們往往習慣于在析構函數(shù)中對成員指針進行內(nèi)存釋放,但在單件類中是不可以這樣操作的,因為delete會調(diào)用類的析構,所以在自己的析構中delete自己的對象就會造成遞歸析構(無窮盡的析構現(xiàn)象)。
UML類圖:
實現(xiàn)代碼:
1)Singleton.hpp
1
/**/
/*
*******************************************************************
2
* Copyright (c) 2010~2010 All Rights Resverved by wei.chen.
3
*******************************************************************
*/
4
/**/
/*
*
5
* @file Singleton.hpp
6
* @brief Declare the class of Singleton.
7
* @version 0.1
8
* @since 0.1
9
* @author chenwei<76487974@qq.com>
10
* @date 2010-7-19 Created it
11
*/
12
13
#ifndef _SINGLETON_HPP
14
#define
_SINGLETON_HPP
15
16
#include
<
iostream
>
17
18
class
Singleton
19
{
20
public
:
21
~
Singleton()
{
22
std::cout
<<
"
Singleton destructor.
"
<<
std::endl;
23
}
24
25
static
Singleton
*
creatInstance();
26
static
void
destroyInstance();
27
void
test()
{
28
std::cout
<<
"
Singleton test.
"
<<
std::endl;
29
}
30
31
private
:
32
static
Singleton
*
m_pInstance;
33
34
Singleton()
{
35
std::cout
<<
"
Singleton constructor.
"
<<
std::endl;
36
}
37
38
Singleton(Singleton
&
);
39
Singleton
&
operator
=
(Singleton
&
);
40
}
;
41
42
#endif
43
44
2)Singleton.cpp
1
/**/
/*
*******************************************************************
2
* Copyright (c) 2010~2010 All Rights Resverved by wei.chen.
3
*******************************************************************
*/
4
/**/
/*
*
5
* @file Singleton.cpp
6
* @brief Implement the methods of the class Singleton.
7
* @version 0.1
8
* @since 0.1
9
* @author chenwei<76487974@qq.com>
10
* @date 2010-7-19 Created it
11
*/
12
13
#include
"
Singleton.hpp
"
14
#include
<
stdlib.h
>
15
16
Singleton
*
Singleton::m_pInstance
=
NULL;
17
18
/**/
/*
*
19
* @fn creatInstance
20
* @brief Create a Singleton instance.
21
* @return A pointer to Singleton Instance, or NULL if failed.
22
* @author wei.chen (2010-7-19)
23
*/
24
Singleton
*
Singleton::creatInstance()
25
{
26
std::cout
<<
"
Create the instance.
"
<<
std::endl;
27
if
(
!
m_pInstance)
{
28
m_pInstance
=
new
Singleton();
29
if
(
!
m_pInstance)
{
30
std::cout
<<
"
No memory to new for Singleton.
"
<<
std::endl;
31
abort();
32
}
33
}
34
35
return
m_pInstance;
36
}
37
38
/**/
/*
*
39
* @fn destroyInstance
40
* @brief Release the memory for destroying the instance.
41
* @author wei.chen (2010-7-19)
42
*/
43
void
Singleton::destroyInstance()
44
{
45
std::cout
<<
"
Destroy the instance.
"
<<
std::endl;
46
delete m_pInstance;
47
m_pInstance
=
NULL;
48
}
49
3)Main.cpp
1
/**/
/*
*******************************************************************
2
* Copyright (c) 2010~2010 All Rights Resverved by wei.chen.
3
*******************************************************************
*/
4
/**/
/*
*
5
* @file Main.cpp
6
* @brief The entrance of the program.
7
* @version 0.1
8
* @since 0.1
9
* @author chenwei<76487974@qq.com>
10
* @date 2010-7-19 Created it
11
*/
12
13
#include
"
Singleton.hpp
"
14
15
/**/
/*
*
16
* @fn main
17
* @brief The entrance of the program.
18
* @return int
19
* @retval 0-normal
20
* @author wei.chen (2010-7-19)
21
*/
22
int
main()
23
{
24
Singleton
*
singletonTest
=
Singleton::creatInstance();
25
if
(
!
singletonTest)
{
26
std::cout
<<
"
Create Instance failed.
"
<<
std::endl;
27
return
-
1
;
28
}
29
30
singletonTest
->
test();
31
Singleton::destroyInstance();
32
33
return
0
;
34
}
35
posted on 2010-07-19 23:39
老狼
閱讀(1725)
評論(0)
編輯
收藏
引用
所屬分類:
C/C++
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
相關文章:
常見設計模式之抽象工廠模式
常見設計模式之代理模式(Proxy)
常見設計模式之工廠模式(Factory Method)
常見設計模式之簡單工廠模式(Static Factory Method)
常見設計模式之模板方法模式(Template Method)
常見設計模式之單件類(Singleton)
C和C++之間庫的互相調(diào)用
linux中的動態(tài)庫和靜態(tài)庫
C++的強制類型轉換
注意C++ STL容器中erase的使用
網(wǎng)站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Copyright @ 老狼
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
亚洲美女视频在线免费观看
|
日韩午夜一区
|
亚洲人成网站999久久久综合
|
国产精品永久免费
|
国产精品国产福利国产秒拍
|
国产精品久久国产精麻豆99网站
|
久久亚洲春色中文字幕
|
久久免费黄色
|
亚洲第一精品在线
|
欧美成人久久
|
99精品久久久
|
亚洲欧美中文在线视频
|
久久男人资源视频
|
欧美日本韩国一区二区三区
|
欧美日韩色一区
|
国产毛片精品国产一区二区三区
|
国产欧美视频在线观看
|
一色屋精品视频在线看
|
99re6热只有精品免费观看
|
亚洲一区二区三区影院
|
久久免费黄色
|
在线一区欧美
|
久久久天天操
|
欧美日韩一区二区在线视频
|
国产精品亚发布
|
1000部国产精品成人观看
|
亚洲毛片一区
|
久久久精品日韩欧美
|
亚洲国产欧美不卡在线观看
|
亚洲午夜精品在线
|
欧美不卡高清
|
国产欧美综合一区二区三区
|
亚洲精品久久久久久一区二区
|
国产亚洲精品久久久久婷婷瑜伽
|
悠悠资源网久久精品
|
一本色道久久加勒比88综合
|
久久蜜臀精品av
|
99re视频这里只有精品
|
久久精品亚洲乱码伦伦中文
|
欧美午夜在线观看
|
亚洲国产日韩在线
|
久久久久久久一区二区三区
|
在线一区欧美
|
欧美日韩另类一区
|
亚洲国产精品一区二区www
|
欧美一级在线视频
|
亚洲美女视频在线免费观看
|
老鸭窝亚洲一区二区三区
|
国产精品一区二区你懂得
|
一区二区亚洲精品国产
|
午夜欧美理论片
|
夜夜狂射影院欧美极品
|
免费美女久久99
|
亚洲电影免费观看高清完整版
|
久久精品国产精品亚洲综合
|
中文无字幕一区二区三区
|
欧美精品在线播放
|
亚洲免费精彩视频
|
91久久久在线
|
欧美国产日韩a欧美在线观看
|
在线观看欧美日本
|
亚洲自拍高清
|
亚洲线精品一区二区三区八戒
|
久久综合电影
|
亚洲高清免费
|
免费成人美女女
|
久久在线91
|
亚洲国产裸拍裸体视频在线观看乱了
|
久久久久久香蕉网
|
久久激情婷婷
|
亚洲国产欧美另类丝袜
|
欧美韩日视频
|
欧美日韩1234
|
亚洲欧美电影在线观看
|
亚洲一级免费视频
|
国产午夜精品久久久久久久
|
欧美一区二区视频在线
|
欧美综合国产精品久久丁香
|
狠狠爱www人成狠狠爱综合网
|
久久久五月婷婷
|
欧美 日韩 国产一区二区在线视频
|
亚洲国产91精品在线观看
|
久久综合色婷婷
|
可以看av的网站久久看
|
亚洲毛片网站
|
午夜精品久久久久久99热软件
|
国产有码在线一区二区视频
|
免费91麻豆精品国产自产在线观看
|
美女国产一区
|
亚洲欧美韩国
|
久久久综合香蕉尹人综合网
|
亚洲免费观看在线视频
|
香蕉久久夜色精品国产使用方法
|
在线成人免费视频
|
99日韩精品
|
一区二区三区在线观看国产
|
欧美激情一区二区三区不卡
|
欧美少妇一区二区
|
美女脱光内衣内裤视频久久网站
|
欧美精品久久99
|
久久国产主播精品
|
欧美精品在线观看一区二区
|
久久精品午夜
|
欧美欧美天天天天操
|
久久精品首页
|
国产精品家教
|
亚洲三级电影在线观看
|
午夜精品理论片
|
亚洲三级网站
|
欧美一区三区二区在线观看
|
亚洲电影在线观看
|
一区二区欧美日韩
|
亚洲第一区中文99精品
|
亚洲一级免费视频
|
一区二区日韩免费看
|
久久久欧美一区二区
|
欧美在线资源
|
国产精品白丝jk黑袜喷水
|
欧美激情精品久久久久久久变态
|
亚洲国产综合91精品麻豆
|
国产午夜精品在线
|
亚洲欧洲一区二区三区在线观看
|
欧美新色视频
|
亚洲激情另类
|
亚洲电影下载
|
欧美高清视频一区二区
|
日韩午夜在线电影
|
国产午夜精品理论片a级探花
|
欧美一二三区精品
|
欧美国产精品日韩
|
亚洲一线二线三线久久久
|
国产一区二区欧美日韩
|
欧美国产日韩一区
|
西瓜成人精品人成网站
|
欧美黄在线观看
|
亚洲欧美一区二区三区在线
|
久久国产主播精品
|
亚洲精品永久免费精品
|
国产精品亚洲产品
|
牛牛影视久久网
|
欧美一级在线视频
|
亚洲日本欧美天堂
|
久久午夜电影网
|
亚洲欧美另类在线观看
|
亚洲大片一区二区三区
|
国产精品免费网站
|
欧美国产综合
|
久久精品国产99国产精品澳门
|
亚洲免费av电影
|
免费日韩av
|
久久er精品视频
|
在线视频中文亚洲
|
亚洲高清av在线
|
国产亚洲va综合人人澡精品
|
欧美精品日韩一区
|
久久天天躁夜夜躁狠狠躁2022
|
欧美成人精品在线视频
|
午夜精品久久久久
|
一本色道精品久久一区二区三区
|
欧美一区三区二区在线观看
|
99在线热播精品免费
|
亚洲福利视频二区
|
在线观看日韩av
|
国产一区二区三区的电影
|
欧美视频一区二
|
欧美精品久久久久久久免费观看
|
亚洲视频在线观看
|
亚洲看片一区
|
亚洲国产美女精品久久久久∴
|
国产一区二区三区丝袜
|
国产精品嫩草影院一区二区
|
欧美日韩精品免费看
|
欧美有码在线视频
|
欧美大片一区
|
久久精品在线视频
|
欧美亚洲免费高清在线观看
|
亚洲午夜在线观看
|
亚洲无限av看
|
亚洲在线播放电影
|
亚洲欧美日韩国产另类专区
|
一本色道久久综合亚洲精品婷婷
|
亚洲精品国偷自产在线99热
|
亚洲欧洲日本一区二区三区
|
亚洲国产精品电影在线观看
|
亚洲第一黄色网
|
亚洲国产aⅴ天堂久久
|
亚洲国产三级
|
99国产精品视频免费观看一公开
|
亚洲区中文字幕
|
99国产精品国产精品毛片
|
中文高清一区
|
亚洲欧美日韩综合
|
欧美主播一区二区三区
|
久久爱另类一区二区小说
|
久久成人久久爱
|
久色婷婷小香蕉久久
|
亚洲第一黄色网
|
99日韩精品
|
久久国产色av
|
欧美xart系列在线观看
|