interface cashSuper {
double acceptCash(double money);
}
class cashDiscount implements cashSuper {
private double discount = 1d;
public cashDiscount(double discount) {
this.discount = discount;
}
@Override
public double acceptCash(double money) {
return money * discount;
}
}
class cashNormal implements cashSuper {
@Override
public double acceptCash(double money) {
return money;
}
}
class cashReturn implements cashSuper {//满减
private double total;
private double _return;
public cashReturn(double total, double _return) {
this.total = total;
this._return = _return;
}
@Override
public double acceptCash(double money) {
if (money < total)
return money;
else
return money - _return;
}
}
class cashContext {//具体收费策略实现
private cashSuper cs = null;
public cashContext(String type) {
switch (type) {
case "正常收费":
cs = new cashNormal();
break;
case "满300减30":
cs = new cashReturn(300, 30);
break;
case "打八折":
cs = new cashDiscount(0.8);
break;
}
}
public double getResult(double money) {
return cs.acceptCash(money);
}