导航
您当前的位置:首页 > 计算机 > 软件水平
问题:

[问答题] 某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各种促销活动,如打折、返利(例如,满300返100)等等。现采用策略(Strategy)模式实现该要求,得到如图6-1所示的类图。中级软件设计师,历年真题,2015年下半年(下午)《软件设计师》真题图6-1策略模式类图【Java代码】import java.util.*;enum TYPE{NORMAL,CASH_DISCOUNT,CASH_RETURN};interface CashSuper{public(1);}class CashNormal implements CashSuper{//正常收费子类public double acceptCash(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://打8折(3);break;case CASH_RETURN://满300返100(4);break;}}public double GetResult(double money){(5);}//此处略去main(  )函数}
答案解析:

相关问题
关于我们 | 用户指南 | 版权声明 | 给我留言 | 联系我们 | 积分商城 | 答案求助 | 网站地图
Copyright © 2024 www.daanwo.com All Rights Reserved