import java.util.Random;
class MethodSequenceDesign {
public static final int STATE_WAIT = 0;
public static final int STATE_A_RUNNING = 1;
public static final int STATE_A_FAIL = 2;
public static final int STATE_B_RUNNING = 3;
public static final int STATE_B_FAIL = 4;
public static final int STATE_C_RUNNING = 5;
public static final int STATE_C_FAIL = 6;
public static final int STATE_END = 7;
static int status = STATE_WAIT;
public void start() {
if (!methodA()) {
status = STATE_A_FAIL;
return;
}
if (!methodB()) {
status = STATE_A_FAIL;
return;
}
if (!methodC()) {
status = STATE_A_FAIL;
return;
}
status = STATE_END;
}
public boolean methodA() {
status = STATE_A_RUNNING;
String str
= "do some operation in method A"; return randomBoolean();
}
public boolean methodB() {
status = STATE_B_RUNNING;
String str
= "do some operation in method B"; return randomBoolean();
}
public boolean methodC() {
status = STATE_C_RUNNING;
String str
= "do some operation in method C"; return randomBoolean();
}
public static void main
(String[] args
) { MethodSequenceDesign method = new MethodSequenceDesign();
method.start();
System.
out.
println("Findal state = " + status
); }
public boolean randomBoolean() {
return random.nextBoolean();
}
}