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

软件工程

开发平台:

Java

  1. package com.company.section3;
  2. import java.util.ArrayList;
  3. /**
  4.  * @author cbf4Life cbf4life@126.com
  5.  * I'm glad to share my knowledge with you all.
  6.  * 导演安排顺序,生产车辆模型
  7.  */
  8. public class Director {
  9. private ArrayList<String> sequence = new ArrayList();
  10. private BenzBuilder benzBuilder = new BenzBuilder();
  11. private BMWBuilder bmwBuilder = new BMWBuilder();
  12. /*
  13.  * A类型的奔驰车模型,先start,然后stop,其他什么引擎了,喇叭一概没有
  14.  */
  15. public BenzModel getABenzModel(){
  16. //清理场景,这里是一些初级程序员不注意的地方
  17. this.sequence.clear();
  18. //这只ABenzModel的执行顺序
  19. this.sequence.add("start");
  20. this.sequence.add("stop");
  21. //按照顺序返回一个奔驰车
  22. this.benzBuilder.setSequence(this.sequence);
  23. return (BenzModel)this.benzBuilder.getCarModel();
  24. }
  25. /*
  26.  * B型号的奔驰车模型,是先发动引擎,然后启动,然后停止,没有喇叭
  27.  */
  28. public BenzModel getBBenzModel(){
  29. this.sequence.clear();
  30. this.sequence.add("engine boom");
  31. this.sequence.add("start");
  32. this.sequence.add("stop");
  33. this.benzBuilder.setSequence(this.sequence);
  34. return (BenzModel)this.benzBuilder.getCarModel();
  35. }
  36. /*
  37.  * C型号的宝马车是先按下喇叭(炫耀嘛),然后启动,然后停止
  38.  */
  39. public BMWModel getCBMWModel(){
  40. this.sequence.clear();
  41. this.sequence.add("alarm");
  42. this.sequence.add("start");
  43. this.sequence.add("stop");
  44. this.bmwBuilder.setSequence(this.sequence);
  45. return (BMWModel)this.bmwBuilder.getCarModel();
  46. }
  47. /*
  48.  * D类型的宝马车只有一个功能,就是跑,启动起来就跑,永远不停止,牛叉
  49.  */
  50. public BMWModel getDBMWModel(){
  51. this.sequence.clear();
  52. this.sequence.add("start");
  53. this.bmwBuilder.setSequence(this.sequence);
  54. return (BMWModel)this.benzBuilder.getCarModel();
  55. }
  56. /*
  57.  * 这边很可以有很多方法,你可以先停止,然后再启动,或者一直停着不动,静态的嘛
  58.  * 导演类嘛,按照什么顺序是导演说了算
  59.  */
  60. }