裝飾( decorator )模式又叫做包裝模式。通 過一種對用戶端透明的方式來擴充對象的功能, 是繼承關系的一個替換方案。
然後下面就是各個對具體裝飾的實作,如果需要多功能結合 不是互相結合,而是通過父類抽象結合對象達到目的。具體可以參考下面案例的實作圖解。
抽象元件角色: 一個抽象接口,是被裝飾類和 裝飾類的父接口。
具體元件角色:為抽象元件的實作類。
抽象裝飾角色:包含一個元件的引用,并定義了 與抽象元件一緻的接口。
具體裝飾角色:為抽象裝飾角色的實作類。負責 具體的裝飾。
局部類圖:
具體實作:
car
runcar
cardecorator
上面相當于搭了好架子,後面需要具體實作了。
flycardecorator
swimcardecorator
然後測試代碼
mainclass
運作可以得到以下結果: