Decorator(裝飾)
意圖
動態(tài)地給一個對象添加一些額外的職責。就增加功能來說,Decorator 模式相比生成子類更為靈活。
適用性
在不影響其他對象的情況下,以動態(tài)、透明的方式給單個對象添加職責。
處理那些可以撤消的職責。
當不能采用生成子類的方法進行擴充時。一種情況是,可能有大量獨立的擴展,為支持每一種組合將產生大量的子類,使得子類數目呈爆炸性增長。另一種情況可能是因為類定義被隱藏,或類定義不能用于生成子類。
Decorator(裝飾)
動態(tài)地給一個對象添加一些額外的職責。就增加功能來說,Decorator 模式相比生成子類更為靈活。
在不影響其他對象的情況下,以動態(tài)、透明的方式給單個對象添加職責。
處理那些可以撤消的職責。
當不能采用生成子類的方法進行擴充時。一種情況是,可能有大量獨立的擴展,為支持每一種組合將產生大量的子類,使得子類數目呈爆炸性增長。另一種情況可能是因為類定義被隱藏,或類定義不能用于生成子類。