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; } } }