设计模式 第十章 状态模式
状态模式
public interface State {
public void start(Context context);
public void close(Context context);
}
public class CloseState implements State{
@Override
public void start(Context context) {
context.setState(new StartState());
System.out.println("start State");
}
@Override
public void close(Context context) {
}
}
public class StartState implements State {
@Override
public void start(Context context) {
}
@Override
public void close(Context context) {
context.setState(new CloseState());
System.out.println("close State");
}
}
public class Context {
private State state;
public void setState(State state){
this.state = state;
}
public State getState(){
return state;
}
public void start(){
getState().start(this);
}
public void close(){
getState().close(this);
}
}
public class StatePatternDemo {
public static void main(String[] args) {
Context context = new Context();
StartState startState = new StartState();
context.setState(startState);
context.close();
context.start();
}
}