定義
在不改變?cè)袑?duì)象的基礎(chǔ)上,將功能附加到對(duì)象上;
提供了比繼承更有彈性的替代方案(擴(kuò)展原有對(duì)象功能);
適用場(chǎng)景
- 擴(kuò)展一個(gè)類(lèi)的功能或給一個(gè)類(lèi)添加附加職責(zé);
- 動(dòng)態(tài)的給一個(gè)類(lèi)添加功能,這些功能可以再動(dòng)態(tài)的撤銷(xiāo);
優(yōu)點(diǎn)
- 繼承的有力補(bǔ)充,比繼承靈活,不改變?cè)袑?duì)象的情況下給一個(gè)對(duì)象擴(kuò)展功能;
- 通過(guò)使用不同裝飾類(lèi)以及這些裝飾類(lèi)的排列組合,可以實(shí)現(xiàn)不同效果;
- 符合開(kāi)閉原則;
缺點(diǎn)
- 會(huì)出現(xiàn)更多的代碼,更多的類(lèi),增加程序復(fù)雜性;
- 動(dòng)態(tài)裝飾,多層裝飾時(shí)會(huì)更復(fù)雜;
相關(guān)設(shè)計(jì)模式
- 裝飾器模式 & 代理模式;
- 裝飾器模式 & 適配器模式;