在Java中,可以使用enum來(lái)定義狀態(tài)機(jī)的狀態(tài)。一個(gè)簡(jiǎn)單的例子如下:
public class StateMachineExample {
//定義狀態(tài)機(jī)的狀態(tài)
public enum State {
START,
PROCESSING,
FINISHED
}
//初始狀態(tài)為START
private State currentState = State.START;
//定義狀態(tài)轉(zhuǎn)移方法
public void transition(State nextState) {
currentState = nextState;
}
//獲取當(dāng)前狀態(tài)
public State getCurrentState() {
return currentState;
}
public static void main(String[] args) {
StateMachineExample stateMachine = new StateMachineExample();
//開(kāi)始狀態(tài)機(jī)
stateMachine.transition(State.PROCESSING);
System.out.println("Current state: " + stateMachine.getCurrentState());
//狀態(tài)轉(zhuǎn)移
stateMachine.transition(State.FINISHED);
System.out.println("Current state: " + stateMachine.getCurrentState());
}
}
在這個(gè)例子中,我們定義了一個(gè)包含三個(gè)狀態(tài)的狀態(tài)機(jī),分別是START、PROCESSING和FINISHED。在StateMachineExample類中,我們可以通過(guò)transition方法進(jìn)行狀態(tài)的轉(zhuǎn)移,并且可以通過(guò)getCurrentState方法獲取當(dāng)前的狀態(tài)。
通過(guò)使用enum來(lái)定義狀態(tài)機(jī)的狀態(tài),可以使代碼更加清晰和易于理解,并且可以避免使用magic number或者字符串來(lái)表示狀態(tài),提高代碼的可維護(hù)性和可讀性。