阅读下列说明和Java代码,将应填入 (n) 处字句写在答题纸对应栏内。
【说明】
某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出各种促销活动,如打折、返利(例如,满300返100)等等。现采用策略(Strategy)模式实现该要求,得到如图6-1所示类图。
import javA.util.*;
enum TYPE {
NORMAL, CASH_DISCOUNT, CASH_RETURN};
interface
CashSuper {
public (1) ;
}
class CashNormal
implements CashSuper{ // 正常收费子类
public double accptCash(double money){
return money;
}
}
class
CashDiscount implements CashSuper {
private double moneyDiscount;
// 折扣率
public CashDiscount(double moneyDiscount) {
this moneyDiscount = moneyDiscount;
}
public double acceptCash(double money) {
return money* moneyDiscount;
}
}
class CashReturn
implements CashSuper { // 满额返利
private double moneyCondition;
private double moneyReturn;
public CashReturn(double moneyCondition, double moneyReturn) {
this.moneyCondition =moneyCondition; // 满额数额
this.moneyReturn =moneyReturn; // 返利数额
}
public double acceptCash(double money) {
double result = money;
if(money >= moneyCondition )
result=money-Math.floor(money/moneyCondition ) *
moneyReturn;
return result;
}
}
class
CashContext_{
private CashSuper cs;
private TYPE t;
public CashContext(TYPE t) {
switch(t){
case NORMAL: // 正常收费
(2) ;
break;
case CASH_DISCOUNT: // 满300返100
(3) ;
break;
case CASH_RETURN: // 打8折
(4) ;
break;
}
}
public double GetResult(double money) {
(5) ;
}
∥此处略去main( )函数
}
(1)double acceptCash(double money) (2)cs = new CashNormal()(3)cs = new CashDiscount(0.8)(4)cs = new CashReturn(300,100)(5)return cs.acceptCash(money)