裝飾者模式是一個很精美且優雅的模式
本篇範例 文字內容->AES加密->Zip檔附加密碼->輸出儲存
情境
有個需求要做
文字內容->壓縮zip(附上密碼)->輸出儲存
又改成…文字內容->AES加密->輸出儲存
需求又改成….文字內容->AES加密->Zip檔附加密碼->輸出儲存
可發現需求一直在對於文字內容操作順序做變化,但他們核心離不開對於文字內容的操作
這種情境很適合來使用 [裝飾者模式]
裝飾者模式 有兩個主要角色 被裝飾物件(Decorated) & 裝飾物件(Decorator)
- 被裝飾物件(Decorated)就像蛋糕的一樣,
- 裝飾物件(Decorator)就是上的水果,奶油,巧克力…等等裝飾物品
一般先有蛋糕被裝飾物件(Decorated),後再將裝飾物品加上去裝飾物件(Decorator)
被裝飾物件(Decorated)如下圖 蛋糕的原型