狀態模式是一種行為型設計模式,它允許一個對象在其內部狀態改變時改變它的行為。在狀態模式中,對象的行為是由其狀態決定的。
下面是一個簡單的狀態模式的實現步驟:
下面是一個簡單的Java代碼實現:
// 定義狀態接口
interface State {
void doAction(Context context);
}
// 實現具體狀態類
class StartState implements State {
public void doAction(Context context) {
System.out.println("Player is in start state");
context.setState(this);
}
}
class StopState implements State {
public void doAction(Context context) {
System.out.println("Player is in stop state");
context.setState(this);
}
}
// 上下文類
class Context {
private State state;
public Context() {
state = null;
}
public void setState(State state) {
this.state = state;
}
public State getState() {
return state;
}
}
// 測試代碼
public class StatePatternDemo {
public static void main(String[] args) {
Context context = new Context();
StartState startState = new StartState();
startState.doAction(context);
StopState stopState = new StopState();
stopState.doAction(context);
}
}
運行以上代碼,輸出結果為:
Player is in start state
Player is in stop state
在上面的示例中,狀態接口State定義了一個行為方法doAction,StartState和StopState是具體的狀態類,它們分別實現了doAction方法。上下文類Context持有一個狀態對象,可以切換不同的狀態。在測試代碼中,我們首先創建一個Context對象,然后創建一個StartState對象,并通過doAction方法將Context對象的狀態切換為StartState;然后創建一個StopState對象,并通過doAction方法將Context對象的狀態切換為StopState。