定義:不改變原類檔案和繼承關系的情況下,動态擴充一個對象的功能。他是通過建立一個包裝對象。
使用場景:不想使用繼承,但又要在原有基礎上增加額外功能。如一部手機,給他增加一個手機殼,再增加一個保護膜。
結構:
抽象構件(Component):定義一個抽象接口
具體構件(ConcreteComponent):實作抽象構件
抽象裝飾(Decorator):繼承抽象構件,并包含具體構件的執行個體,可以通過其子類擴充具體構件的功能
具體裝飾(ConcreteDecorator):實作抽象裝飾的相關方法,并給具體構件對象添加附加功能

給一個隻有打電話功能的手機增加功能。
代碼示例:
測試代碼:
傳回目錄
書山有路勤為徑,學海無涯苦作舟