目的
將額外權責動態附加於物件身上,不必衍生子類別即可彈性擴充。如為 TextBox 添加 ScrollBar
動機
如果想將額外權責附加到個別物件上面,可以使用繼承,但這作法彈性不夠。
Decorator 的作法是在元件外面包覆上有該能力的物件。這做法的另一個優點就是通透性,所以就像裝備一樣,可以無限的包覆下去。
結構

參與者
- Component : 可以被 Decorator 動態添加權責的物件之介面
- ConcreteComponent : 可以被 Decorator 動態添加權責的物件
- Decorator : 裝飾者介面
- ConcreteDecoreator : 可將權責添加到 Component 身上
範例

建立 Component ,提供共用的基本數值

建立可以被共用的基本角色數值

可以被添加的裝飾者

實際產生怪物

