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

软件工程

开发平台:

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 Lift implements ILift {
  8. private int state;
  9. public void setState(int state) {
  10. this.state = state;
  11. }
  12. //电梯门关闭
  13. public void close() {
  14. //电梯在什么状态下才能关闭
  15. switch(this.state){
  16. case OPENING_STATE:  //如果是则可以关门,同时修改电梯状态
  17. this.closeWithoutLogic();  
  18. this.setState(CLOSING_STATE);
  19. break;
  20. case CLOSING_STATE:  //如果电梯就是关门状态,则什么都不做
  21. //do nothing;
  22. break;
  23. case RUNNING_STATE: //如果是正在运行,门本来就是关闭的,也说明都不做
  24. //do nothing;
  25. break;
  26. case STOPPING_STATE:  //如果是停止状态,本也是关闭的,什么也不做
  27. //do nothing;
  28. break;
  29. }
  30. }
  31. //电梯门开启
  32. public void open() {
  33. //电梯在什么状态才能开启
  34. switch(this.state){
  35. case OPENING_STATE: //如果已经在门敞状态,则什么都不做
  36. //do nothing;
  37. break;
  38. case CLOSING_STATE: //如是电梯时关闭状态,则可以开启
  39. this.openWithoutLogic();
  40. this.setState(OPENING_STATE);
  41. break;
  42. case RUNNING_STATE: //正在运行状态,则不能开门,什么都不做
  43. //do nothing;
  44. break;
  45. case STOPPING_STATE: //停止状态,淡然要开门了
  46. this.openWithoutLogic();
  47. this.setState(OPENING_STATE);
  48. break;
  49. }
  50. }
  51. //电梯开始跑起来
  52. public void run() {
  53. switch(this.state){
  54. case OPENING_STATE: //如果已经在门敞状态,则不你能运行,什么都不做
  55. //do nothing;
  56. break;
  57. case CLOSING_STATE: //如是电梯时关闭状态,则可以运行
  58. this.runWithoutLogic();
  59. this.setState(RUNNING_STATE);
  60. break;
  61. case RUNNING_STATE: //正在运行状态,则什么都不做
  62. //do nothing;
  63. break;
  64. case STOPPING_STATE: //停止状态,可以运行
  65. this.runWithoutLogic();
  66. this.setState(RUNNING_STATE);
  67. }
  68. }
  69. //电梯停止
  70. public void stop() {
  71. switch(this.state){
  72. case OPENING_STATE: //如果已经在门敞状态,那肯定要先停下来的,什么都不做
  73. //do nothing;
  74. break;
  75. case CLOSING_STATE: //如是电梯时关闭状态,则当然可以停止了
  76. this.stopWithoutLogic();
  77. this.setState(CLOSING_STATE);
  78. break;
  79. case RUNNING_STATE: //正在运行状态,有运行当然那也就有停止了
  80. this.stopWithoutLogic();
  81. this.setState(CLOSING_STATE);
  82. break;
  83. case STOPPING_STATE: //停止状态,什么都不做
  84. //do nothing;
  85. break;
  86. }
  87. }
  88. //纯粹的电梯关门,不考虑实际的逻辑
  89. private void closeWithoutLogic(){
  90. System.out.println("电梯门关闭...");
  91. }
  92. //纯粹的店门开,不考虑任何条件
  93. private void openWithoutLogic(){
  94. System.out.println("电梯门开启...");
  95. }
  96. //纯粹的运行,不考虑其他条件
  97. private void runWithoutLogic(){
  98. System.out.println("电梯上下跑起来...");
  99. }
  100. //单纯的停止,不考虑其他条件
  101. private void stopWithoutLogic(){
  102. System.out.println("电梯停止了...");
  103. }
  104. }