裝飾模式
定義:
指的是在 “不必改變原類檔案 ” 和 “不使用繼承” 的情況下,動态地擴充一個對象的功能。它是通過建立一個包裝對象,也就是裝飾來包裹真實的對象。
舉例 ( 如何讓家長在差的成績單基礎上看到感覺更好的成績 ) :
正常的學校下發成績單流程:
為了更好的修飾成績單,在拿到成績單之前做些手腳。先說出最高分,然後說自己的排名。
引出問題:
如果我們還想繼續修改,那麼就要繼續去繼承,不僅繼承超過了兩層,而且類的數量會激增,維護起來也麻煩。還有基類的順序可能會有改變。是以,要想辦法引出第三種類來解決這種問題,具體新增内容的執行順序放到子類進行。這時,裝飾者模式就出現了。
總結:
使用了裝飾者模式,不改變了原來的類檔案,而且不使用內建,動态的、可選擇性的裝飾去完成了類的拓展。
最後引出類圖:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SNiFTZmFjYxIWOmFjMhFTYmdTZiRjZ5UzM5UTNhJmM38CX2AzLcdDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL5M3Lc9CX6MHc0RHaiojIsJye.png)