策略模式java代码实现

上传人:第*** 文档编号:32826568 上传时间:2018-02-12 格式:DOCX 页数:8 大小:34.24KB
返回 下载 相关 举报
策略模式java代码实现_第1页
第1页 / 共8页
策略模式java代码实现_第2页
第2页 / 共8页
策略模式java代码实现_第3页
第3页 / 共8页
策略模式java代码实现_第4页
第4页 / 共8页
策略模式java代码实现_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《策略模式java代码实现》由会员分享,可在线阅读,更多相关《策略模式java代码实现(8页珍藏版)》请在金锄头文库上搜索。

1、http:/ 代码 1. /* 2. * 策略模式 3. * QS:做个商场收银软件,营销员根据客户所购买的商品和数量向客户收费 第一次程序 4. * author xangqun 5. * 6. */ 7. public class Program 8. 9. /* 10. *PS: 11. * 如果商场搞活动,商品打 8 折,打 5 折怎么办? 12. * param args 13. * throws IOException 14. */ 15. public static void main(String args) throws IOException 16. System.out.

2、println(单价:); 17. String strA = new BufferedReader(new InputStreamReader(System.in) 18. .readLine(); 19. System.out.println(数量:); 20. String strB = new BufferedReader(new InputStreamReader(System.in) 21. .readLine(); 22. double numberd = Double.valueOf(strA) + Double.valueOf(strB); 23. System.out.pr

3、intln(价格为: + numberd); 24. 25. 26. 27. Java 代码 1. /* 2. * 策略模式 3. * QS:做个商场收银软件,营销员根据客户所购买的商品和数量向客户收费 第一次程序 4. * author xangqun 5. * 改进的程序 1 6. */ 7. public class ProgramTwo 8. 9. /* 10. * PS:3 个分支执行的语句除了打折不一样外几乎没什么不同应该考虑重构下 11. * param args 12. * throws IOException 13. * 14. */ 15. public static vo

4、id main(String args) throws IOException 16. 17. System.out.println(单价:); 18. String strA = new BufferedReader(new InputStreamReader(System.in) 19. .readLine(); 20. System.out.println(数量:); 21. String strB = new BufferedReader(new InputStreamReader(System.in) 22. .readLine(); 23. System.out.println(折

5、扣:); 24. String strC = new BufferedReader(new InputStreamReader(System.in) 25. .readLine(); 26. int numc= Integer.valueOf(strC); 27. double result = 0; 28. switch(numc) 29. case 1:result=Double.valueOf(strA) + Double.valueOf(strB);break; 30. case 2:result=(Double.valueOf(strA) + Double.valueOf(strB)

6、*0.8;break; 31. case 3:result=(Double.valueOf(strA) + Double.valueOf(strB)*0.5;break; 32. 33. System.out.println(result); 34. Java 代码 1. public abstract class CashSuper 2. 3. public abstract double acceptCash(double money); 4. Java 代码 1. public class CashNormal extends CashSuper 2. 3. Override 4. pu

7、blic double acceptCash(double money) 5. 6. return money; 7. 8. 9. Java 代码 1. public class CashRebate extends CashSuper 2. 3. private double moneyRebate=1d; 4. public CashRebate() 5. public CashRebate(String moneyRebate) 6. this.moneyRebate=Double.valueOf(moneyRebate); 7. 8. Override 9. public double

8、 acceptCash(double money) 10. return money*moneyRebate; 11. 12. 13. Java 代码 1. public class CashReturn extends CashSuper 2. 3. private double moneyCondition=0.0d; 4. private double moneyReturn=0.0d; 5. public CashReturn() 6. public CashReturn(double moneyCondition,double moneyReturn) 7. this.moneyCo

9、ndition=moneyCondition; 8. this.moneyReturn=moneyReturn; 9. 10. Override 11. public double acceptCash(double money) 12. double result=money; 13. if(moneymoneyCondition) 14. result=money-Math.floor(money/moneyCondition)*moneyReturn; 15. 16. return result; 17. 18. 19. Java 代码 1. public class CashFacto

10、ry 2. 3. public static CashSuper createCashAccept(int type) 4. CashSuper cs=null; 5. switch(type) 6. case 1:cs=new CashNormal();break; 7. case 2: cs=new CashReturn(300,100);break; 8. case 3:cs=new CashRebate(0.8);break; 9. 10. return cs; 11. 12. Java 代码 1. /* 2. * 策略模式 3. * QS:做个商场收银软件,营销员根据客户所购买的商品

11、和数量向客户收费 第一次程序 4. * author xangqun 5. * 改进的程序 2(采用简单工厂模式) 6. */ 7. public class ProgramThree 8. 9. /*PS: 10. * 简单工厂模式只是解决对象的创建问题,面对算法时常变动应该考虑用其他方法 11. * param args 12. * throws IOException 13. */ 14. public static void main(String args) throws IOException 15. System.out.println(单价:); 16. String strA

12、 = new BufferedReader(new InputStreamReader(System.in) 17. .readLine(); 18. System.out.println(数量:); 19. String strB = new BufferedReader(new InputStreamReader(System.in) 20. .readLine(); 21. 22. CashSuper cs=CashFactory.createCashAccept(1); 23. double totalprices=0d; 24. totalprices=cs.acceptCash(Double.valueOf(strA)*Double.valueOf(strB); 25. System.out.println(totalprices); 26. 27. 28. Java 代码 1. public class CashContext 2. 3. private CashSuper cs; 4. public CashContext(CashSuper csuper) 5. this.cs=csuper; 6. 7. public double getResult(double money) 8. return cs.acceptCash(money); 9. 10. J

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号