21.State-狀態模式

State 狀態模式

  • 狀態模式:
    允許一個對象在其內部狀態改變時改變它的行爲,對象看起來似乎修改了它的類。
    其別名爲狀態對象(Objects for States),狀態模式是一種對象行爲型模式。

  • 結構圖:
    State_structure

  • 示例類圖:
    State_uml

  • 示例代碼:

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();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章