public void handle() { System.out.println("ConcreteState1.handle() executing"); }
}
第二个,ConcreteState2.java
public class ConcreteState2 implements State { public void handle() { System.out.println("ConcreteState2.handle() executing"); } }
这两个类实现了State接口。
然后再看,Context.java是如何将上述三个.java文件联系起来。
public class Context { public static final int STATE_ONE = 0; public static final int STATE_TWO = 1; //大家注重,这句话很要害,该模式做手脚的地方! private State currentState = new ConcreteState1();
public void request() { currentState.handle(); }
public void changeState(int state) { switch (state) { case STATE_ONE: currentState = new ConcreteState1();//要害点 break; case STATE_TWO: currentState = new ConcreteState2();//要害点 break; } } }