設(shè)計模式:裝飾模式
2021-04-22 09:11 作者:做架構(gòu)師不做框架師 | 我要投稿
什么是裝飾模式?
裝飾模式(英文:Decorator Pattern),動態(tài)地往一個類中加入新的行為,就功能而言,修飾模式相比生成子類更為靈活,這樣可以給某個對象而不是整個類添加一些功能。

一句話歸納
他大舅他二舅都是他舅。
代碼示例
我以前在北京上班的時候,一大早不到7點就出門(真是起得比雞早,睡得比狗晚啊),然后去趕公交車,等坐完了兩個小時公交車后,在路上就買一個雞蛋灌餅當早飯吃,豪奢的時候給自己加個腸加個雞蛋,這里就以我的早餐為例。

適用性
以下場景我建議你考慮使用:
需要擴展一個類的功能的時候,又不想通過子類擴展的時候;
需要給一個類動態(tài)的增加,動態(tài)的撤銷的時候;
需要給現(xiàn)有的一組類進行加功能時候;
裝飾模式在java語言中的最著名的應(yīng)用莫過于 Java I/O 標準庫的設(shè)計。
裝飾模式是“is-a”的關(guān)系。
局限性
以下場景我建議你謹慎使用:
多層封裝會提升代碼的復雜度,就像剝洋蔥一樣;
繼承是靜態(tài)的給類增加功能,而裝飾模式則是動態(tài)的增加功能。

寫在最后
最后,好兄弟,記得點贊,關(guān)注,謝謝。

標簽: