状态模式java代码示例
时间: 2023-07-03 08:06:23 浏览: 59
下面是一个简单的状态模式的 Java 代码示例:
```java
// 状态接口
interface State {
void doAction(Context context);
}
// 具体状态类1
class StateA implements State {
public void doAction(Context context) {
System.out.println("当前状态为 A");
context.setState(new StateB());
}
}
// 具体状态类2
class StateB implements State {
public void doAction(Context context) {
System.out.println("当前状态为 B");
context.setState(new StateC());
}
}
// 具体状态类3
class StateC implements State {
public void doAction(Context context) {
System.out.println("当前状态为 C");
context.setState(new StateA());
}
}
// 上下文类
class Context {
private State state;
public Context() {
state = new StateA();
}
public void setState(State state) {
this.state = state;
}
public void doAction() {
state.doAction(this);
}
}
// 测试类
public class StatePatternDemo {
public static void main(String[] args) {
Context context = new Context();
context.doAction();
context.doAction();
context.doAction();
}
}
```
输出结果为:
```
当前状态为 A
当前状态为 B
当前状态为 C
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)