大話設(shè)計(jì)模式 裝飾模式

圖片發(fā)自簡書App

一層繼承一層。裝飾模式是為已有功能動(dòng)態(tài)地添加更多功能的一種方式。關(guān)鍵詞是添加更多功能。

當(dāng)系統(tǒng)需要新功能時(shí),是向舊的類中添加新的代碼。這些新加的代碼通常裝飾了原有類的核心職責(zé)或主要功能,而這些代碼僅在特定情況下才需要。裝飾模式把每個(gè)要裝飾的功能放在單獨(dú)的類,當(dāng)執(zhí)行時(shí)客戶代碼可以有選擇,按順序使用裝飾功能包裝對(duì)象。

他的好處是有效地把類的核心職責(zé)和裝飾功能區(qū)分開,而且除去相關(guān)類的重復(fù)裝飾邏輯。

人類有個(gè)show的函數(shù)。服飾類繼承人類,并擁有一個(gè)人類,裝飾就是set人類,有一個(gè)覆蓋的show 函數(shù)里面調(diào)用自身人類的show。具體類的西褲,大衣類都有繼承服飾類,覆蓋show 函數(shù),里面是裝飾邏輯和調(diào)用父類的show??蛻舳耸紫葎?chuàng)建人類,然后按順序西褲set 人,大衣set前面的西褲,最后大衣show。這樣就會(huì)先做了穿大衣的邏輯,然后調(diào)用服飾類的show,這個(gè)show調(diào)用了set進(jìn)去的西褲的show,所以繼續(xù)做西褲的邏輯,然后重復(fù)迭代,調(diào)用人類的show邏輯。

這樣的確一層疊一層,也可以按順序。感覺就是一直調(diào)用set進(jìn)來的類的同一個(gè)函數(shù)。繼承是為了可以set的使用用泛型,以后更動(dòng)態(tài)的添加新類,不影響其他的裝飾類。

應(yīng)用:加密數(shù)據(jù),過濾詞匯都可以是數(shù)據(jù)持久化的裝飾功能,保證裝飾類之間彼此獨(dú)立,這樣就可以任意順序組合。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容