版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第三部分結(jié)構(gòu)型設(shè)計(jì)模式橋接模式(BridgePattern)適配器模式(AdpterPattern)合成模式(CompsitePattern)門面模式(FacadePattern)裝飾模式(DecoratorPattern)代理模式(ProxyPattern)享元模式(FlyweightPattern)1橋接模式(BridgePattern)classA{public:
virtual~A();
virtualvoidf();
virtualvoidg();private:
int
x;
int
y;};變化的三個方向:1)接口的變化2)實(shí)現(xiàn)的變化3)屬性的變化(本質(zhì)上,還是實(shí)現(xiàn)的變化)適應(yīng)單個方向的變化容易組合和繼承方式均可適應(yīng)接口變化方法classA{public:
virtual~A();
virtualvoidf();
virtualvoidg();protected:
int
x;
int
y;};classNewA:publicA{public:
virtual~NewA();
virtualvoidh();};classNewA{public:
NewA(A*oldA):pa(oldA){}
virtual~NewA();
virtualvoidf(){pa->f();}
virtualvoidg(){pa->g();}
virtualvoidh();private:
A
*pa;};接口變化:增加新的功能h()適應(yīng)實(shí)現(xiàn)變化方法classA{public:
virtual~A();
virtualvoidf();
virtualvoidg();protected:
int
x;
int
y;};classNewA:publicA{public:
virtual~NewA();
virtualvoidf(){
/*新實(shí)現(xiàn)*/
}};classNewA{public:
NewA(A*oldA):pa(oldA){}
virtual~NewA();
virtualvoidf(){
/*新實(shí)現(xiàn)*/
}
virtualvoidg(){pa->g();}protected
:
A
*pa;};多個成員實(shí)現(xiàn)的同時變化classA{public:
virtual~A();
virtualvoidf();
virtualvoidg();protected:
int
x;
int
y;};classA{public:
A(
ImpF*f,ImpG*g
):pf(f),pg(g){}
virtual~A();
virtualvoidf(){
pf->f();}
virtualvoidg(){pg->g();}private:
ImpF*pf;
ImpG*pg;};classImpF{public:
virtual~ImpF();
vritualvoidf()=0;};classImpG{public:
virtual~ImpG();
vritualvoidG()=0;};classImpF1:publicImpF{public:
virtual~ImpF1();
vritualvoidf(){}
};classImpG1:publicImpG{略};兩個方向同時變化的適應(yīng)單一使用組合或繼承的不足結(jié)合組合和繼承的方式分離變化用組合關(guān)聯(lián)兩個方向的變化使單個方向的變化獨(dú)立出來(獨(dú)立變化)第一步:分離接口和實(shí)現(xiàn)class
A{public:
virutal~A();
virtualvoidf();
virtualvoidg();};
classImpA{public:
virtual~ImpA();
virtualvoidf();
virtualvoidg();protected:
int
x;
int
y;};第二步:用組合連接接口和實(shí)現(xiàn)class
A{public:
virutal~A(ImpA*p):impA(p){}
virtualvoidf(){impA->f();}
virtualvoidg(){impA->g();}private:
ImpA
*impA;};classImpA{public:
virtual~ImpA();
virtualvoidf();
virtualvoidg();protected:
int
x;
int
y;};第三步:使接口和實(shí)現(xiàn)的變化獨(dú)立class
A{public:
virutal~A(ImpA*p):impA(p){}
virtualvoidf(){impA->f();}
virtualvoidg(){impA->g();}private:
ImpA
*impA;};classImpA{public:
virtual~ImpA();
virtualvoidf();
virtualvoidg();protected:
int
x;
int
y;};class
NewA:pubicA{public:
virutal~NewA(ImpA*p):A(p){}
virtualvoidh(){
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆黑龍江省鐵力市第一中學(xué)物理高三上期末統(tǒng)考試題含解析
- 2025屆河南省永城市實(shí)驗(yàn)高級中學(xué)物理高二上期末達(dá)標(biāo)測試試題含解析
- 2025屆山東省淄博市實(shí)驗(yàn)中學(xué)、第五中學(xué)、高青縣第一中學(xué)物理高二第一學(xué)期期中統(tǒng)考模擬試題含解析
- 吉林省白城市洮南市第十中學(xué)2025屆高三物理第一學(xué)期期末經(jīng)典模擬試題含解析
- 2025屆廣東省番禺區(qū)物理高二第一學(xué)期期中教學(xué)質(zhì)量檢測模擬試題含解析
- 上海市寶山區(qū)揚(yáng)波中學(xué)2025屆高一物理第一學(xué)期期末達(dá)標(biāo)檢測試題含解析
- 2025屆四川省攀枝花市第十二中學(xué)高一物理第一學(xué)期期末考試模擬試題含解析
- 2025屆江西省宜春九中高一物理第一學(xué)期期末復(fù)習(xí)檢測試題含解析
- 福建省福州市第四中學(xué)2025屆物理高三上期末綜合測試試題含解析
- 2025屆上海市上海師大附中物理高三上期末質(zhì)量檢測模擬試題含解析
- GB/T 42455.2-2024智慧城市建筑及居住區(qū)第2部分:智慧社區(qū)評價
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識
- 2024廣西專業(yè)技術(shù)人員繼續(xù)教育公需科目參考答案(97分)
- YYT 0653-2017 血液分析儀行業(yè)標(biāo)準(zhǔn)
- 江蘇省建筑與裝飾工程計(jì)價定額(2014)電子表格版
- 新時代中小學(xué)思政課一體化建設(shè)探究
- 刑事受害人授權(quán)委托書范本
- 《文明上網(wǎng)健康成長》的主題班會
- 電工基礎(chǔ)(周紹敏主編)-參考答案
- 框架結(jié)構(gòu)冬季施工方案
- 裝配式擋土墻施工方案(完整版)
評論
0/150
提交評論