蝸牛的家
男兒當(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
博客園
模板提供:
滬江博客
88久久精品无码一区二区毛片
|
欧美无乱码久久久免费午夜一区二区三区中文字幕
|
一本色道久久99一综合
|
亚洲国产精品无码久久久秋霞2
|
久久久久久亚洲Av无码精品专口
|
久久免费国产精品一区二区
|
青青青青久久精品国产h久久精品五福影院1421
|
日韩精品国产自在久久现线拍
|
伊人久久大香线蕉综合热线
|
久久天天躁狠狠躁夜夜96流白浆
|
国产精品成人精品久久久
|
久久人人爽人人爽人人片AV高清
|
亚洲国产精品久久久久久
|
一本一本久久A久久综合精品
|
久久精品二区
|
久久久精品一区二区三区
|
蜜桃麻豆WWW久久囤产精品
|
国产精品无码久久四虎
|
99久久精品费精品国产一区二区
|
中文字幕久久精品无码
|
久久se这里只有精品
|
亚洲国产精品热久久
|
久久综合狠狠综合久久综合88
|
久久精品国产国产精品四凭
|
国产精品九九九久久九九
|
久久精品亚洲中文字幕无码麻豆
|
久久久久人妻一区二区三区
|
伊人色综合久久天天网
|
久久有码中文字幕
|
久久久国产亚洲精品
|
女人高潮久久久叫人喷水
|
久久国产V一级毛多内射
|
国产日韩久久久精品影院首页
|
99久久国产热无码精品免费久久久久
|
国产精品成人久久久
|
一本一本久久a久久精品综合麻豆
|
久久精品这里只有精99品
|
成人亚洲欧美久久久久
|
久久久久久无码国产精品中文字幕
|
久久精品国产亚洲av麻豆色欲
|
久久丫精品国产亚洲av不卡
|