軟件設(shè)計模式ch3 - 裝飾者模式.ppt

軟件設(shè)計模式ch3 - 裝飾者模式.ppt

ID:49235203

大?。?.39 MB

頁數(shù):47頁

時間:2020-02-02

軟件設(shè)計模式ch3 - 裝飾者模式.ppt_第1頁
軟件設(shè)計模式ch3 - 裝飾者模式.ppt_第2頁
軟件設(shè)計模式ch3 - 裝飾者模式.ppt_第3頁
軟件設(shè)計模式ch3 - 裝飾者模式.ppt_第4頁
軟件設(shè)計模式ch3 - 裝飾者模式.ppt_第5頁
資源描述:

《軟件設(shè)計模式ch3 - 裝飾者模式.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、軟件設(shè)計方法及設(shè)計模式張聚禮副教授/系統(tǒng)分析師裝飾者模式3一二三四五六星巴茲咖啡認識裝飾者模式裝飾者模式裝飾飲料真實世界的裝飾者:JavaI/O編寫自己的JavaI/O裝飾者主要內(nèi)容一、星巴茲咖啡概況飲料類調(diào)整(一)(二)(三)效果(四)開放-關(guān)閉原則(五)星巴茲是以擴展迅速而聞名的咖啡店,其原始設(shè)計如下:(一)概況(二)飲料類很明顯,設(shè)計了太多的類(二)飲料類從Beverage類開始,添加實例變量(三)調(diào)整加入子類(三)調(diào)整(三)調(diào)整(四)效果(四)效果設(shè)計原則五:類應(yīng)該對擴展開放,對修改關(guān)閉。(五)開放-關(guān)閉原則(五)開放-關(guān)閉原則二、認識裝飾者模式思

2、路構(gòu)造飲料訂單(一)(二)以飲料為主體,運行時以調(diào)料來“裝飾”飲料,例如,顧客想要摩卡和奶泡深焙咖啡:取一個深焙咖啡對象以摩卡對象裝飾它以奶泡對象裝飾它調(diào)用cost()方法,并依賴委托將調(diào)料的價錢加上去。(一)思路(二)構(gòu)造飲料訂單(二)構(gòu)造飲料訂單(二)構(gòu)造飲料訂單(二)構(gòu)造飲料訂單三、裝飾者模式定義類圖缺點(一)(二)(三)(一)定義裝飾者模式:動態(tài)地將責任加到對象身上。如果要擴展功能,裝飾者模式提供了比繼承更有彈性的替代方案。(二)類圖(三)缺點有時在設(shè)計中加入大量的小類,變得不容易理解。有的客戶端代碼依賴于特定的類型(這是個比較糟糕的習(xí)慣,違反了“

3、針對接口編程,而不是針對實現(xiàn)編程”的設(shè)計原則),當服務(wù)器端引入裝飾者模式時,客戶端就會出現(xiàn)狀況。裝飾者模式使得實例化組件的復(fù)雜度提升。四、裝飾飲料星巴茲飲料實現(xiàn)(一)(二)(一)星巴茲飲料從Beverage類開始(二)實現(xiàn)Beverage類很簡單,下面來實現(xiàn)CondimentDecorator調(diào)料類(二)實現(xiàn)編寫飲料代碼(二)實現(xiàn)編寫飲料代碼(續(xù))(二)實現(xiàn)編寫調(diào)料代碼(二)實現(xiàn)編寫測試代碼(二)實現(xiàn)RUN(二)實現(xiàn)(二)實現(xiàn)五、真實世界的裝飾者:JavaI/O典型實例裝飾java.io類(一)(二)(一)典型實例(二)裝飾java.io類六、編寫自己的J

4、avaI/O裝飾者編寫自己的JavaI/O裝飾者測試新的JavaI/O裝飾者(一)(二)(一)編寫自己的JavaI/O裝飾者(一)編寫自己的JavaI/O裝飾者(二)測試新的JavaI/O裝飾者(二)測試新的JavaI/O裝飾者RUN七、總結(jié)AbstractionEncapsulationPolymorphismInheritanceEncapsulatewhatvaries.Favorcompositionoverinheritence.Programtointerfaces,notimplementations.Strategy-definesafam

5、ilyofalgorithms,encapsulateseachone,andmakestheminterchangeable.Strategyletsthealgorithmvaryindependentlyfromclientsthatuseit.總結(jié)OOBasicsOOPrinciplesOOPatterns1Observer-definesaone-to-manydependencybetweenobjectssothatwhenoneobjectchangesstate,allitsdependentsarenotifiedandupdateda

6、utomatically總結(jié)OOPatternsStriveforlooselycoupleddesignsbetweenobjectsthatinteract.OOPrinciples2Decorator-Attachadditionalresponsibilitiestoanobjectdynamically.Decoratorsprovideaflexiblealternativetosubclassingforextendingfunctionality.總結(jié)OOPatternsClassesshouldbeopenforextensionbutc

7、losedformodification.OOPrinciples3

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。