




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
裝飾者模式馬劍威第110講課程大綱1、繼承帶來的問題2、裝飾者模式概述3、裝飾者模式實(shí)現(xiàn)4、裝飾者模式小結(jié)話說威哥當(dāng)年創(chuàng)業(yè)開店--賣豆?jié){!因豆?jié){純,分店幾乎開遍全縣城所有村,由于開展的實(shí)在是太快了,所以急于實(shí)現(xiàn)一套由計(jì)算機(jī)管理的自動(dòng)化記賬系統(tǒng)。主料:豆?jié){配料:糖 黑豆 五谷 雞蛋…1、繼承帶來的問題1、繼承帶來的問題類爆炸!2、裝飾者模式概述所以下面我們將拜訪一下今天的主角—裝飾者模式,看看她能給我們帶來什么驚喜吧!
意圖:動(dòng)態(tài)地給一個(gè)對象添加一些額外的職責(zé)。就增加功能來說,Decorator模式相比生成子類更為靈活。該模式以對客戶端透明的方式擴(kuò)展對象的功能。2、裝飾者模式概述適用環(huán)境在不影響其他對象的情況下,以動(dòng)態(tài)、透明的方式給單個(gè)對象添加職責(zé)。處理那些可以撤消的職責(zé)。當(dāng)不能采用生成子類的方法進(jìn)行擴(kuò)充時(shí)。一種情況是,可能有大量獨(dú)立的擴(kuò)展,為支持每一種組合將產(chǎn)生大量的子類,使得子類數(shù)目呈爆炸性增長。另一種情況可能是因?yàn)轭惗x被隱藏,或類定義不能用于生成子類。2、裝飾者模式概述2、裝飾者模式概述Component〔被裝飾對象基類〕定義對象的接口,可以給這些對象動(dòng)態(tài)增加職責(zé);ConcreteComponent〔具體被裝飾對象〕定義具體的對象,Decorator可以給它增加額外的職責(zé);Decorator〔裝飾者抽象類〕維護(hù)一個(gè)指向Component實(shí)例的引用,并且定義了與Component一致的接口;ConcreteDecorator〔具體裝飾者〕具體的裝飾對象,給內(nèi)部持有的具體被裝飾對象增加具體的職責(zé);2、裝飾者模式概述涉及角色抽象構(gòu)件角色:定義一個(gè)抽象接口,來標(biāo)準(zhǔn)準(zhǔn)備附加功能的類。具體構(gòu)件角色:將要被附加功能的類,實(shí)現(xiàn)抽象構(gòu)件角色接口。抽象裝飾者角色:持有對具體構(gòu)件角色的引用并定義與抽象構(gòu)件角色一致的接口。具體裝飾角色:實(shí)現(xiàn)抽象裝飾者角色,負(fù)責(zé)為具體構(gòu)件添加額外功能。
3、裝飾者模式實(shí)現(xiàn)Drink.java 被裝飾者對象的接口SoyaBeanMilk.java 具體的被裝飾者對象EggDecorator.java 具體裝飾者對象SugarDecorator.java 具體裝飾者對象BlackBeanDecorator.java 具體裝飾者對象Decorator.java 裝飾者基類Test.java 測試4、裝飾者模式小結(jié)OO原那么:動(dòng)態(tài)地將責(zé)任附加到對象上。想要擴(kuò)展功能,裝飾者提供有別于繼承的另一種選擇。
要點(diǎn):1、繼承屬于擴(kuò)展形式之一,但不見得是到達(dá)彈性設(shè)計(jì)的最正確方案。2、在我們的設(shè)計(jì)中,應(yīng)該允許行為可以被擴(kuò)展,而不須修改現(xiàn)有的代碼。3、組合和委托可用于在運(yùn)行時(shí)動(dòng)態(tài)地加上新的行為。4、除了繼承,裝飾者模式也可以讓我們擴(kuò)展行為。4、裝飾者模式小結(jié)
要點(diǎn):5、裝飾者模式意味著一群裝飾者類,這些類用來包裝具體組件。6、裝飾者類反映出被裝飾的組件類型〔實(shí)際上,他們具有相同的類型, 都經(jīng)過接口或繼承實(shí)現(xiàn)〕。7、裝飾者可以在被裝飾者的行為前面與/或后面加上自己的行為, 甚至將被裝飾者的行為整個(gè)取代掉,而到達(dá)特定的目的。
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技推動(dòng)醫(yī)療技術(shù)革新及產(chǎn)業(yè)發(fā)展
- (一模)臨沂市2025屆高三高考第一次模擬考試歷史試卷(含標(biāo)準(zhǔn)答案)
- 戰(zhàn)略思考能力的培養(yǎng)計(jì)劃
- 財(cái)務(wù)風(fēng)險(xiǎn)識別與評估的方法論
- 質(zhì)量文化的建設(shè)與傳播策略
- 跨國企業(yè)知識產(chǎn)權(quán)培訓(xùn)與教育體系構(gòu)建
- 金融科技公司財(cái)報(bào)特點(diǎn)與趨勢分析
- 超聲波在材料科學(xué)的研究應(yīng)用
- 超快速激脈沖技術(shù)在航空航天領(lǐng)域的應(yīng)用與展望
- 貴州國企招聘2024銅仁市扶貧開發(fā)投資有限責(zé)任公司招聘11人筆試參考題庫附帶答案詳解
- 【正版授權(quán)】 IEC 63310:2025 EN Functional performance criteria for AAL robots used in connected home environment
- 最終版附件1:“跨學(xué)科主題學(xué)習(xí)”教學(xué)設(shè)計(jì)(2025年版)
- (2024)云南省公務(wù)員考試《行測》真題及答案解析
- 2022年“正確認(rèn)識新疆四史”《民族團(tuán)結(jié)鑄牢中華民族共同體意識》全文解讀
- 靜脈治療護(hù)理技術(shù)操作標(biāo)準(zhǔn)解讀
- (精心整理)事故后果模擬分析
- 國家開放大學(xué)電大《健康教育與健康促進(jìn)(本)》期末題庫及答案
- MBR系統(tǒng)運(yùn)行技術(shù)手冊
- 中國河流湖泊
- 學(xué)校中層干部民主測評表(一)
- 中國農(nóng)業(yè)銀行資金證明模板
評論
0/150
提交評論