import java.util.*; interface State { public void insertQuarter(); // 投币 public void ejectQuarter(); // 退币 public void turnCrank(); // 按下“出纸巾”按钮 public void dispense(); // 出纸巾 } class TissueMachine { (1) soldOutState, noQuarterState, hasQuarterState, soldState, state; state = soldOutState; int count = 0; // 纸巾数 public TissueMachine(int numbers) { /* 实现代码省略 */ } public State getHasQuarterState() { return hasQuarterState; } public State getNoQuarterState() { return noQuarterState; } public State getSoldState() { return soldState; } public State getSoldOutState() { return soldOutState; } public int getCount() { return count; } // 其余代码省略 } class NoQuarterState implements State { TissueMachine tissueMachine; public void insertQuarter() { tissueMachine.setState((2)); } // 构造方法以及其余代码省略 } class HasQuarterState implements State { TissueMachine tissueMachine; public void ejectQuarter() { tissueMachine.setState((3)); } // 构造方法以及其余代码省略 } class SoldState implements State { TissueMachine tissueMachine; public void dispense() { if (tissueMachine.getCount() > 0) { tissueMachine.setState((4)); } else { tissueMachine.setState((5)); } } }