public interface State {
public void handle();
}
public class ConcreteState1 implements State{
public void handle() {
System. out .println("handle by ConcreteState1" );
}
}
public class ConcreteState2 implements State{
public void handle() {
System. out .println("handle by ConcreteState2" );
}
}
public class Context {
private State state ;
public void setState(State state) {
this .state = state;
}
public void handle() {
state.handle();
}
}
public class StateClient {
public static void main(String[] args) {
Context context = new Context();
State s1 = new ConcreteState1();
State s2 = new ConcreteState2();
context.setState(s1);
context.handle();
context.setState(s2);
context.handle();
}
}
状态模式有个上下文,然后传入不同的状态,上下文会做出不同的动作。