蝸牛的家
男兒當(dāng)自強(qiáng)
C++博客
首頁
新文章
新隨筆
聚合
管理
posts - 48, comments - 21, trackbacks - 0
C++設(shè)計(jì)模式-Decorator
意圖:
動(dòng)態(tài)的給一個(gè)對象添加一些額外的職責(zé)。比生成子類更為靈活
UML結(jié)構(gòu)圖:
適用:
在不影響其他對象的情況下,以動(dòng)態(tài),透明的方式給單個(gè)對象添加職責(zé)
處理那些不可撤消的職責(zé)
當(dāng)不能采用生成子類的方式進(jìn)行擴(kuò)充時(shí)
//
test.h
/**/
////////////////////////////////////////////////////////////////////////
//
class
Component
{
public
:
Component()
{}
virtual
~
Component()
{}
//
純虛函數(shù)
virtual
void
Operation()
=
0
;
}
;
//
抽象基類,維護(hù)一個(gè)指向Component對象的指針
class
Decorator :
public
Component
{
public
:
Decorator(Component
*
pComponent) : m_pComponent(pComponent)
{}
virtual
~
Decorator();
protected
:
Component
*
m_pComponent;
}
;
//
派生自Component,需要給他動(dòng)態(tài)添加職責(zé)
class
ConCreateComponent :
public
Component
{
public
:
ConCreateComponent()
{}
virtual
~
ConCreateComponent()
{}
virtual
void
Operation();
}
;
//
派生自Decorator,為ConCreateComponent動(dòng)態(tài)添加職責(zé)
class
ConCreateDecorator :
public
Decorator
{
public
:
ConCreateDecorator(Component
*
pComponent) : Decorator(pComponent)
{}
virtual
~
ConCreateDecorator()
{}
virtual
void
Operation();
private
:
void
AddedBehavior();
//
動(dòng)態(tài)添加的職責(zé)
}
;
// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include
<
iostream
>
#include "test.h"
//////////////////////////////////////////////////////////////////////////
Decorator::~Decorator()
{
delete m_pComponent;
m_pComponent = NULL;
}
void ConCreateComponent::Operation()
{
std::cout
<
< "Operation
of ConCreateComponent\n";
}
void ConCreateDecorator::Operation()
{
m_pComponent-
>
Operation();
AddedBehavior();
}
void ConCreateDecorator::AddedBehavior()
{
std::cout
<
< "AddedBehavior
of ConCreateDecorator\n";
}
//////////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
Component* Pcomponent
= new
ConCreateComponent;
//用這個(gè)對象去初始化一個(gè)Decorator對象
//通過多態(tài)調(diào)用動(dòng)態(tài)添加了職責(zé)
Decorator* pDecorator
= new
ConCreateDecorator(Pcomponent);
pDecorator-
>
Operation();
delete pDecorator;
system("pause");
return 0;
}
posted on 2008-08-18 22:45
黑色天使
閱讀(442)
評論(0)
編輯
收藏
引用
所屬分類:
設(shè)計(jì)模式
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(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
博問
Chat2DB
管理
<
2009年2月
>
日
一
二
三
四
五
六
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
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(2)
給我留言
查看公開留言
查看私人留言
隨筆分類
C\C++(8)
Hacker(1)
STL
VC&MFC(4)
操作系統(tǒng)(1)
多進(jìn)程&多線程
流媒體開發(fā)
內(nèi)存管理技術(shù)(2)
軟件工程(1)
設(shè)計(jì)模式(20)
數(shù)據(jù)結(jié)構(gòu)&算法(2)
網(wǎng)絡(luò)開發(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)
搜索
最新評論
1.?re: C++設(shè)計(jì)模式-Observer
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--no7dw
2.?re: YUV格式詳細(xì)解釋與FFMPEG的關(guān)系
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--windsome
3.?re: 鍵盤過濾驅(qū)動(dòng)源代碼
@soul
再怎么懶也應(yīng)該自己實(shí)現(xiàn)一部分吧
--黑色天使
4.?re: 鍵盤過濾驅(qū)動(dòng)源代碼[未登錄]
再怎么懶也該加上unload例程吧
--soul
5.?re: CHttpDownLoad Beta 1.0
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--tangxinfa
閱讀排行榜
1.?RGB、YUY2、YUYV、YVYU、UYVY與AYUV(轉(zhuǎn))(6722)
2.?YUV格式詳細(xì)解釋與FFMPEG的關(guān)系(4333)
3.?如何檢測內(nèi)存泄漏(轉(zhuǎn))(3911)
4.?memcpy的BUG(2741)
5.?內(nèi)存池技術(shù)學(xué)習(xí)筆記(2372)
評論排行榜
1.?CHttpDownLoad Beta 1.0(10)
2.?memcpy的BUG(5)
3.?事件模型SOCKET封裝(2)
4.?鍵盤過濾驅(qū)動(dòng)源代碼(2)
5.?C++設(shè)計(jì)模式-Observer(1)
Copyright ©2025 黑色天使 Powered By
博客園
模板提供:
滬江博客
久久水蜜桃亚洲av无码精品麻豆
|
一级a性色生活片久久无
|
亚洲精品视频久久久
|
91精品国产高清久久久久久io
|
中文国产成人精品久久亚洲精品AⅤ无码精品
|
久久久精品人妻无码专区不卡
|
精品久久久久久亚洲精品
|
亚洲国产成人精品91久久久
|
久久精品国产亚洲AV香蕉
|
蜜臀久久99精品久久久久久
|
九九精品99久久久香蕉
|
国产精品久久久久久久app
|
激情五月综合综合久久69
|
国内精品久久久久
|
久久综合中文字幕
|
精品久久久久国产免费
|
99久久国产亚洲高清观看2024
|
国内精品久久人妻互换
|
国产精品九九九久久九九
|
韩国无遮挡三级久久
|
a级毛片无码兔费真人久久
|
久久久久亚洲AV无码去区首
|
麻豆精品久久精品色综合
|
国产亚州精品女人久久久久久
|
国产精品激情综合久久
|
婷婷久久精品国产
|
热re99久久6国产精品免费
|
韩国无遮挡三级久久
|
精品乱码久久久久久夜夜嗨
|
久久精品国产清自在天天线
|
亚洲乱码日产精品a级毛片久久
|
亚洲国产成人精品女人久久久
|
久久精品国产亚洲AV嫖农村妇女
|
久久精品国产一区二区电影
|
麻豆av久久av盛宴av
|
日韩va亚洲va欧美va久久
|
国产福利电影一区二区三区久久久久成人精品综合
|
国产精品久久久久久影院
|
国内精品伊人久久久久777
|
国产成人久久精品二区三区
|
四虎国产精品成人免费久久
|