2. StartState类
StartState是一个具体的子类,代表游戏的“开始状态”。它覆盖了从接口继承的方法,并且还具有一个返回“开始状态”的字符串的方法。
3. 停止状态类
停止状态也是状态接口的具体子类。唯一的变化是它代表游戏的“暂停”状态。
4. 上下文(环境)
如前所述,上下文在我们的案例中维护了ConcreteState子类,StopState或Start状态的实例。
5. 状态设计模式演示
将startState.doAction方法传递给上下文对象以设置应用程序的当前状态。然后,上下文的getState方法返回当前状态,并且具体状态类内部的toString方法用于执行由当前状态定义的所需操作。
上下文类将特定于状态的请求委托给ConcreteState对象(在本例中为startstate / stopstate)。状态对象通过上下文传递为访问上下文的参数。
如果我们对对象的每个状态有不同的行为,则应使用Java中的状态设计模式。可能是我们可能需要在运行时配置转换。它还可以在为游戏创建GUI时派上用场。在运行时,用户可能希望为特定级别使用不同的界面,或者游戏本身可能根据所玩游戏的级别更改状态。