在狀態(tài)模式(State Pattern)中,類的行為是基于它的狀態(tài)改變的。
允許對(duì)象在內(nèi)部狀態(tài)發(fā)生改變時(shí)改變它的行為,對(duì)象看起來好像修改了它的類。

狀態(tài)模式.png
public class Context {
private State state;
public Context(){
state = null;
}
public void setState(State state){
this.state = state;
}
public State getState(){
return this.state;
}
}
public interface State {
public void doAction(Context context);
}
public class StartState implements State {
@Override
public void doAction(Context context) {
System.out.println("start state");
context.setState(this);
}
}
public class StopState implements State {
@Override
public void doAction(Context context) {
System.out.println("stop state");
context.setState(this);
}
}
public class StateDemo {
public static void main(String[] args){
Context context = new Context();
StartState startState = new StartState();
startState.doAction(context);
StopState stopState = new StopState();
stopState.doAction(context);
}
}