状态模式

行为型模式

状态模式

在状态模式(State Pattern)中,类的行为是基于它的状态改变的,在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象

优点

缺点

使用场景

示例

public class StatePattern {
    public static void main(String[] args) {
        Context context = new Context();
        StartState startState = new StartState();
        EndState endState = new EndState();
        startState.doAction(context);
        endState.doAction(context);
    }
}

class EndState implements State {
    @Override
    public void doAction(Context context) {
        System.out.println("context at end status");
        context.setState(this);
    }
}

class StartState implements State {
    @Override
    public void doAction(Context context) {
        System.out.println("context at start status");
        context.setState(this);
    }
}

interface State {
    void doAction(Context context);
}

class Context {
    private State state;

    Context() {
        state = null;
    }
    public State getState() {
        return state;
    }

    public void setState(State state) {
        this.state = state;
    }
}