写一个java状态模式的详细实例
- 游戏开发
- 2025-07-21 19:05:13

以下是一个示例的 Java 状态模式实现:
java Copy code // 定义状态接口 interface State { void handleState(Context context); }
// 具体状态类 1 class ConcreteState1 implements State { public void handleState(Context context) { System.out.println("当前状态为状态 1"); // 在状态 1 下执行相应的逻辑 } }
// 具体状态类 2 class ConcreteState2 implements State { public void handleState(Context context) { System.out.println("当前状态为状态 2"); // 在状态 2 下执行相应的逻辑 } }
// 上下文类,用于维护当前状态并执行相应操作 class Context { private State currentState;
public void setCurrentState(State state) { this.currentState = state; }
public void request() { currentState.handleState(this); } }
public class StatePatternExample { public static void main(String[] args) { Context context = new Context();
// 设置初始状态为状态 1 State state1 = new ConcreteState1(); context.setCurrentState(state1);
// 执行请求 context.request();
// 切换到状态 2 State state2 = new ConcreteState2(); context.setCurrentState(state2);
// 执行请求 context.request(); } } 在上述示例中,我们首先定义了一个 State 接口,它包含了状态的处理方法 handleState()。然后,我们创建了两个具体状态类 ConcreteState1 和 ConcreteState2 实现了 State 接口,并分别实现了自己的状态处理逻辑。
接下来,我们定义了一个上下文类 Context,它维护了当前状态并提供了一个公共方法 request() 用于执行相应的操作。在 Context 中,我们通过 setCurrentState() 方法设置当前状态,并在 request() 方法中调用当前状态的处理方法。
最后,在主程序中,我们创建了一个 Context 对象,并设置初始状态为状态 1。然后,调用 request() 方法执行相应的操作。随后,我们将状态切换为状态 2,并再次执行请求。
通过状态模式,我们可以实现基于不同状态的不同行为,避免了大量的条件语句和分支结构,提高了代码的可扩展性和可维护性。
写一个java状态模式的详细实例由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“写一个java状态模式的详细实例”