狀態模式:
容許一個對象在其內部狀態改變時改變它的行爲,對象看起來彷佛修改了它的類。
其別名爲狀態對象(Objects for States),狀態模式是一種對象行爲型模式。java
結構圖:
markdown
示例類圖:
ide
示例代碼:測試
public interface State {
public void handle();
}
public class StartState implements State{
@Override
public void handle() {
System.out.println("Player is in start state");
}
}
public class StopState implements State{
@Override
public void handle() {
System.out.println("Player is in stop state");
}
}
public class Context {
private State state;
public void request() {
state.handle();
}
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
}
}
// 測試
public class StateTest {
public static void main(String[] args) {
Context context = new Context();
StartState startState = new StartState();
context.setState(startState);
context.request();
context.setState(new StopState());
context.request();
}
}