何為裝飾模式
定義:動(dòng)態(tài)的給一個(gè)對(duì)象添加一些額外的職責(zé)。就擴(kuò)展功能來(lái)說(shuō),裝飾模式相比生成子類更為靈活
靜態(tài)關(guān)系圖如下

裝飾模式的類圖
何時(shí)使用裝飾模式
1、想要在不影響其他對(duì)象情況下,以動(dòng)態(tài)、透明的方式給單個(gè)對(duì)象添加職責(zé)。
2、想要擴(kuò)展一個(gè)類的行為,卻做不到。類定義可能被隱藏,無(wú)法進(jìn)行子類化;或者,對(duì)類的每個(gè)行為的擴(kuò)展,為支持每種功能組合,將產(chǎn)生大量的子類
3、對(duì)類的職責(zé)的擴(kuò)展是可選的
注:系統(tǒng)Category是基于裝飾器模式
注意:Category可能重寫(xiě)了被裝飾父類的方法

實(shí)現(xiàn)裝飾模式的各種圖像濾鏡的類圖