一个不太恰当的代码实现:
public class StateMain { //状态接口 State beginState; State endState; public void begin(){ beginState.begin(); } public void end(){ endState.end(); } public State getBeginState() { return beginState; } public void setBeginState(State beginState) { this.beginState = beginState; } public State getEndState() { return endState; } public void setEndState(State endState) { this.endState = endState; } } public class BeginState implements State{ private StateMain stateMain; public BeginState(StateMain stateMain) { this.stateMain = stateMain; } @Override public void begin() { System.out.println("开始状态"); //将状态委托到另一个类中执行 stateMain.setEndState(stateMain.getEndState()); } @Override public void end() { System.out.println("开始状态"); } }