fork download
  1. import java.util.Random;
  2.  
  3. class MethodSequenceDesign {
  4.  
  5. public static final int STATE_WAIT = 0;
  6. public static final int STATE_A_RUNNING = 1;
  7. public static final int STATE_A_FAIL = 2;
  8. public static final int STATE_B_RUNNING = 3;
  9. public static final int STATE_B_FAIL = 4;
  10. public static final int STATE_C_RUNNING = 5;
  11. public static final int STATE_C_FAIL = 6;
  12. public static final int STATE_END = 7;
  13.  
  14. static int status = STATE_WAIT;
  15.  
  16. public void start() {
  17. if (!methodA()) {
  18. status = STATE_A_FAIL;
  19. return;
  20. }
  21. if (!methodB()) {
  22. status = STATE_A_FAIL;
  23. return;
  24. }
  25. if (!methodC()) {
  26. status = STATE_A_FAIL;
  27. return;
  28. }
  29. status = STATE_END;
  30. }
  31.  
  32. public boolean methodA() {
  33. status = STATE_A_RUNNING;
  34. String str = "do some operation in method A";
  35. System.out.println(str);
  36. return randomBoolean();
  37.  
  38. }
  39.  
  40. public boolean methodB() {
  41. status = STATE_B_RUNNING;
  42. String str = "do some operation in method B";
  43. System.out.println(str);
  44. return randomBoolean();
  45.  
  46. }
  47.  
  48. public boolean methodC() {
  49. status = STATE_C_RUNNING;
  50. String str = "do some operation in method C";
  51. System.out.println(str);
  52. return randomBoolean();
  53. }
  54.  
  55. public static void main(String[] args) {
  56. MethodSequenceDesign method = new MethodSequenceDesign();
  57. method.start();
  58. System.out.println("Findal state = " + status);
  59. }
  60.  
  61. public boolean randomBoolean() {
  62. Random random = new Random();
  63. return random.nextBoolean();
  64. }
  65. }
  66.  
Success #stdin #stdout 0.1s 27960KB
stdin
Standard input is empty
stdout
do some operation in method A
do some operation in method B
Findal state = 2