- publicabstractclassBeverage{
- Stringdescription="UnknownBeverage";
- publicStringgetDescription(){
- returndescription;
- }
- publicabstractdoublecost();
- }
- publicabstractclassCondimentDecoratorextendsBeverage{
- publicabstractStringgetDescription();
- }
- publicclassDarkRoastextendsBeverage{
- publicDarkRoast(){
- description="DarkRoastCoffee";
- }
- publicdoublecost(){
- return.99;
- }
- }
- publicclassMilkextendsCondimentDecorator{ //加牛奶的咖啡
- Beveragebeverage;
- publicMilk(Beveragebeverage){
- this.beverage=beverage;
- }
- publicStringgetDescription(){
- returnbeverage.getDescription()+",Milk";
- }
- publicdoublecost(){
- return.10+beverage.cost();
- }
- }
要计算加牛奶的咖啡的价格
Milk milk = new Milk(new DarkRoast());
milk.cost();