小弟不材,望大大们来帮我解说一下代码,谢谢了...
public abstract class Beverage{
String description="Unknown Beverage";
public String getDescription(){
return description;
}
public abstract double cost();
}
public abstract class CondimentDecorator extends Beverage{
public abstract String getDescription();
}
public class Espresso extends Beverage{
public Espresso(){
description="Espresso";
}
public double cost(){
return 1.99;
}
}
public class Mocha extends CondimentDecorator{
Beverage beverage;
public Mocha(Beverage beverage){
this.beverage=beverage;
}
public String getDescription(){
return beverage.getDescription()+",Mocha";
}
public double cost(){
return 0.2+beverage.cost();
}
}
public class CoffeeShop{
public static void main(String args[]){
beverage beverage=new Espresso();
beverage=new Mocha(beverage);
System.out.println(beverage.getDescription()+"$"+beverage.cost());
}
}
现在有这样5个类,我想知道CoffeeShop执行的时候,整个过程是什么样子的?
还有Mocha类的
public Mocha(Beverage beverage){
this.beverage=beverage;
}
是做什么的?
this.beverage=beverage;是什么意思?