文档详情

策略模式Java代码实现.docx

发布:2017-12-18约6.02千字共8页下载文档
文本预览下载声明
/blog/631241/blog/631241Java代码 /** ??*?h1策略模式/h1??*?QS:做个商场收银软件,营销员根据客户所购买的商品和数量向客户收费?第一次程序 ??*?@author?xangqun ??*?*/??public?class?Program?{??/** ??*PS: ??*?pre如果商场搞活动,商品打8折,打5折怎么办??/pre??*?@param?args ??*?@throws?IOException ??*/???public?static?void?main(String[]?args)?throws?IOException?{?System.out.println(单价:);?String?strA?=?new?BufferedReader(new?InputStreamReader(System.in))?.readLine();?System.out.println(数量:);?String?strB?=?new?BufferedReader(new?InputStreamReader(System.in))?.readLine();?double?numberd?=?Double.valueOf(strA)?+?Double.valueOf(strB);?System.out.println(价格为:?+?numberd);??}?}??Java代码 /** ??*?h1策略模式/h1??*?QS:做个商场收银软件,营销员根据客户所购买的商品和数量向客户收费?第一次程序 ??*?@author?xangqun ??*?改进的程序1 ??*/??public?class?ProgramTwo?{??/** ??*?PS:3个分支执行的语句除了打折不一样外几乎没什么不同应该考虑重构下 ??*?@param?args ??*?@throws?IOException?*?*/???public?static?void?main(String[]?args)?throws?IOException?{??System.out.println(单价:);?String?strA?=?new?BufferedReader(new?InputStreamReader(System.in))?.readLine();?System.out.println(数量:);?String?strB?=?new?BufferedReader(new?InputStreamReader(System.in))?.readLine();?System.out.println(折扣:);?String?strC?=?new?BufferedReader(new?InputStreamReader(System.in))?.readLine();?int?numc=?Integer.valueOf(strC);?double?result?=?0;?switch(numc){?case?1:result=Double.valueOf(strA)?+?Double.valueOf(strB);break;?case?2:result=(Double.valueOf(strA)?+?Double.valueOf(strB))*0.8;break;?case?3:result=(Double.valueOf(strA)?+?Double.valueOf(strB))*0.5;break;?}?System.out.println(result);?}??Java代码 public?abstract?class?CashSuper?{??public?abstract?double?acceptCash(double?money);}??Java代码 public?class?CashNormal?extends?CashSuper?{??@Override??public?double?acceptCash(double?money)?{??return?money;?}?}??Java代码 public?class?CashRebate?extends?CashSuper?{??private?double?moneyRebate=1d;?public?CashRebate(){}?public?CashRebate(String?moneyRebate){?this.moneyRebate=Double.valueOf(moneyRebate);?}?@Override??public?double?acceptCash(double?money)?{?return?money*moneyRebate;?
显示全部
相似文档