Mediator.java
上传用户:hensond
上传日期:2021-12-27
资源大小:817k
文件大小:1k
源码类别:

软件工程

开发平台:

Java

  1. package com.company.section2;
  2. /**
  3.  * @author cbf4Life cbf4life@126.com
  4.  * I'm glad to share my knowledge with you all.
  5.  * 中介者
  6.  */
  7. public class Mediator extends AbstractMediator {
  8. //中介者最重要的方法
  9. public void execute(String str,Object...objects){
  10. if(str.equals("purchase.buy")){ //采购电脑
  11. this.buyComputer((Integer)objects[0]);
  12. }else if(str.equals("sale.sell")){ //销售电脑
  13. this.sellComputer((Integer)objects[0]);
  14. }else if(str.equals("sale.offsell")){ //折价销售
  15. this.offSell();
  16. }else if(str.equals("stock.clear")){ //清仓处理
  17. this.clearStock();
  18. }
  19. }
  20. //采购电脑
  21. private void buyComputer(int number){
  22. int saleStatus = super.sale.getSaleStatus();
  23. if(saleStatus>80){  //销售情况良好
  24. System.out.println("采购IBM电脑:"+number + "台");
  25. super.stock.increase(number);
  26. }else{  //销售情况不好
  27. int buyNumber = number/2;  //折半采购
  28. System.out.println("采购IBM电脑:"+buyNumber+ "台");
  29. }
  30. }
  31. //销售电脑
  32. private void sellComputer(int number){
  33. if(super.stock.getStockNumber()<number){  //库存数量不够销售
  34. super.purchase.buyIBMcomputer(number);
  35. }
  36. super.stock.decrease(number);
  37. }
  38. //折价销售电脑
  39. private void offSell(){
  40. System.out.println("折价销售IBM电脑"+stock.getStockNumber()+"台");
  41. }
  42. //清仓处理
  43. private void clearStock(){
  44. //要求清仓销售
  45. super.sale.offSale();
  46. //要求采购人员不要采购
  47. super.purchase.refuseBuyIBM();
  48. }
  49. }