38 lines
708 B
D
38 lines
708 B
D
|
module decorator.coffeewithsize.soy;
|
||
|
|
||
|
import decorator.coffeewithsize.beverage;
|
||
|
import decorator.coffeewithsize.condimentdecorator;
|
||
|
|
||
|
class Soy : CondimerDecorator
|
||
|
{
|
||
|
private:
|
||
|
Beverage beverage;
|
||
|
public:
|
||
|
this(Beverage beverage)
|
||
|
{
|
||
|
this.beverage = beverage;
|
||
|
}
|
||
|
|
||
|
override string getDescription()
|
||
|
{
|
||
|
return beverage.getDescription() ~ ", Soy";
|
||
|
}
|
||
|
|
||
|
override double cost()
|
||
|
{
|
||
|
double cost = beverage.cost();
|
||
|
if (beverage.getSize() == Size.TALL)
|
||
|
{
|
||
|
cost += .10;
|
||
|
}
|
||
|
else if (beverage.getSize() == Size.GRANDE)
|
||
|
{
|
||
|
cost += .15;
|
||
|
}
|
||
|
else if (beverage.getSize() == Size.VENTI)
|
||
|
{
|
||
|
cost += .20;
|
||
|
}
|
||
|
return cost;
|
||
|
}
|
||
|
}
|