蝸牛的家
男兒當(dāng)自強(qiáng)
C++博客
首頁(yè)
新文章
新隨筆
聚合
管理
posts - 48, comments - 21, trackbacks - 0
C++設(shè)計(jì)模式-Adapter
意圖:
將一個(gè)類(lèi)的接口轉(zhuǎn)換成客戶需要的另外一個(gè)接口。使得原本不兼容而不能在一起工作的類(lèi)可以一起工作
適用:
你想使用一個(gè)類(lèi),而他的接口不符合你的要求
你想創(chuàng)建一個(gè)可復(fù)用的類(lèi),該類(lèi)可以與其他不相關(guān)的類(lèi)或是不可預(yù)見(jiàn)的類(lèi)協(xié)同工作,或是使用多重繼承的方法避免
UML圖:
采用繼承原有接口類(lèi)的方式
采用組合原有接口類(lèi)的方式
解析:
Adapt模式其實(shí)就是把完成
同樣的一個(gè)功能
但是接口不能兼容的類(lèi)橋接在一起使之可以在一起工作,這個(gè)模式使得復(fù)用舊的接口成為可能.
//
test.h
/**/
////////////////////////////////////////////////////////////////////////
//
//
需要被Adapt的類(lèi)
class
Target
{
public
:
Target()
{}
virtual
~
Target()
{}
virtual
void
Request()
=
0
;
}
;
//
與被Adapt對(duì)象存在不兼容接口的類(lèi)
,或是這個(gè)類(lèi)與target類(lèi)毫無(wú)關(guān)聯(lián),去想在同一個(gè)類(lèi)中使用兩個(gè)類(lèi)的函數(shù).
class
Adaptee
{
public
:
Adaptee()
{}
~
Adaptee()
{}
void
SpecialRequest();
}
;
//
進(jìn)行Adapt的類(lèi),聚合原有接口類(lèi)
class
Adapter :
public
Target
{
public
:
Adapter(Adaptee
*
pAdaptee);
virtual
~
Adapter();
virtual
void
Request();
//
重載了接口且進(jìn)行了聚合
private
:
Adaptee
*
m_Adaptee;
}
;
//
test.cpp : Defines the entry point for the console application.
//
#include
"
stdafx.h
"
#include
<
iostream
>
#include
"
stdlib.h
"
#include
"
test.h
"
using
namespace
std;
/**/
////////////////////////////////////////////////////////////////////////
//
void
Adaptee::SpecialRequest()
{
cout
<<
"
specialRequest of Adaptee\n
"
;
}
Adapter::Adapter(Adaptee
*
pAdaptee) : m_Adaptee(pAdaptee)
{
}
Adapter::
~
Adapter()
{
delete m_Adaptee;
m_Adaptee
=
NULL;
}
void
Adapter::Request()
{
cout
<<
"
Request of Adapter\n
"
;
m_Adaptee
->
SpecialRequest();
}
/**/
////////////////////////////////////////////////////////////////////////
//
int
main(
int
argc,
char
*
argv[])
{
Adaptee
*
pAdaptee
=
new
Adaptee;
Target
*
pTarget
=
new
Adapter(pAdaptee);
pTarget
->
Request();
delete pTarget;
system(
"
pause
"
);
return
0
;
}
posted on 2008-08-17 02:29
黑色天使
閱讀(312)
評(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
管理
<
2008年8月
>
日
一
二
三
四
五
六
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
31
1
2
3
4
5
6
常用鏈接
我的隨筆
我的評(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久久久久
|
久久WWW免费人成一看片
|
青青草原综合久久大伊人导航
|
久久人人爽人人爽人人片AV麻豆
|
免费精品国产日韩热久久
|
婷婷伊人久久大香线蕉AV
|
91精品国产91久久
|
国产精品99久久久久久宅男
|
国产精品免费久久久久电影网
|
久久综合亚洲鲁鲁五月天
|
国产精品99久久免费观看
|
久久人人爽人人澡人人高潮AV
|
久久久久亚洲精品无码网址
|
欧美黑人激情性久久
|
久久久久久久亚洲精品
|
久久人人妻人人爽人人爽
|
国产99久久久国产精品~~牛
|
久久精品国产男包
|
久久久久久极精品久久久
|
国产婷婷成人久久Av免费高清
|
久久久久久九九99精品
|
伊人久久一区二区三区无码
|
久久久久久狠狠丁香
|
久久婷婷五月综合97色一本一本
|
伊人色综合久久天天
|
国产亚洲综合久久系列
|
亚洲va中文字幕无码久久不卡
|
中文字幕精品无码久久久久久3D日动漫
|
婷婷五月深深久久精品
|
久久午夜免费视频
|
久久国产香蕉视频
|
久久精品国产色蜜蜜麻豆
|
狠狠狠色丁香婷婷综合久久五月
|
久久精品国产清高在天天线
|
久久大香萑太香蕉av
|
香蕉久久AⅤ一区二区三区
|
久久国产视屏
|
欧美精品一区二区久久
|
亚洲人成无码www久久久
|
无码任你躁久久久久久久
|
午夜福利91久久福利
|