裝飾器模式: 不改變其原有的結構和功能,為物件新增新功能 比繼承更加靈活
class
duck
eat(food)
}class
tangduck
eat(food)
}let tang = new tangduck('tang');
let duck = new duck('tang');
tang.eat('蘋果');
duck.eat('蘋果');
複製**
例項: 買咖啡場景
class
coffee
+咖啡`;
}cost()
}class
milkcoffee
make(water) +奶`;
}cost()
}class
sugarcoffee
make(water) +糖`
}cost()
}let coffee = new coffee();
let milkcoffee = new milkcoffee(coffee);
let sugarcoffee = new sugarcoffee(milkcoffee);
console.log(milkcoffee.cost())
console.log(sugarcoffee.cost())
複製**
設計模式之裝飾器模式
定義 decorator裝飾器,顧名思義,就是動態地給乙個物件新增一些額外的職責,就好比為房子進行裝修一樣。因此,裝飾器模式具有如下的特徵 它必須具有乙個裝飾的物件。它必須擁有與被裝飾物件相同的介面。它可以給被裝飾物件新增額外的功能。用一句話總結就是 保持介面,增強效能。裝飾器通過包裝乙個裝飾物件來...
設計模式之裝飾器模式
什麼是裝飾器模式 decorator 裝飾器模式的優點 裝飾器模式的缺點 示例 package com.pattern.decorator 抽象類,裝飾器的父類 author yjzhou public abstract class decorator implements component ov...
設計模式之裝飾器模式
裝飾模式 decorator 顧名思義,裝飾模式就是給乙個物件增加一些新的功能,而且是動態的,要求裝飾物件和被裝飾物件實現同乙個介面,裝飾物件持有被裝飾物件的例項,關係圖如下 source類是被裝飾類,decorator類是乙個裝飾類,可以為source類動態的新增一些功能,如下 1.public ...