状态模式是一种行为型设计模式,它允许一个对象在其内部状态改变时改变它的行为。在状态模式中,对象的行为是由其状态决定的。
下面是一个简单的状态模式的实现步骤:
下面是一个简单的Java代码实现:
// 定义状态接口
interface State {
void doAction(Context context);
}
// 实现具体状态类
class StartState implements State {
public void doAction(Context context) {
System.out.println("Player is in start state");
context.setState(this);
}
}
class StopState implements State {
public void doAction(Context context) {
System.out.println("Player is in stop state");
context.setState(this);
}
}
// 上下文类
class Context {
private State state;
public Context() {
state = null;
}
public void setState(State state) {
this.state = state;
}
public State getState() {
return state;
}
}
// 测试代码
public class StatePatternDemo {
public static void main(String[] args) {
Context context = new Context();
StartState startState = new StartState();
startState.doAction(context);
StopState stopState = new StopState();
stopState.doAction(context);
}
}
运行以上代码,输出结果为:
Player is in start state
Player is in stop state
在上面的示例中,状态接口State定义了一个行为方法doAction,StartState和StopState是具体的状态类,它们分别实现了doAction方法。上下文类Context持有一个状态对象,可以切换不同的状态。在测试代码中,我们首先创建一个Context对象,然后创建一个StartState对象,并通过doAction方法将Context对象的状态切换为StartState;然后创建一个StopState对象,并通过doAction方法将Context对象的状态切换为StopState。