類應該對擴充開放, 對修改關閉.
所謂裝飾者模式, 是指用其他的類來裝飾某個類,
裝飾者說白了就是使用 has-a 來代替 is-a
咖啡店, 有很多種咖啡, 咖啡裡還要增加一些 milk, 面包片啊, 等等. 針對加的東西不同, 計算出來的費用不同, 那麼我們需要怎麼做呢?
1. 首先建立一個 coffee 基類(有抽象的cost方法)
2. 黑咖啡, 原味咖啡, 等咖啡繼承 coffee 基礎類, 是 is-a的關系
3. 建立一個裝飾基礎類, 用來裝飾咖啡( 有抽象的cost方法)
3. milk, 面包片等是用來裝飾咖啡的, 比如黑咖啡中加入milk, 是以繼承裝飾基類
比如你計算費用時, 所有裝飾者的費用自己就可以調用計算.