题目
介绍下状态模式
答案
状态模式(State Pattern)允许对象在内部状态改变时改变它的行为。**状态模式将状态的行为抽象为不同类,实现状态的切换**。
适用场景:
- 对象行为依赖状态,状态经常改变。
- 用 if-else 处理状态逻辑变得混乱时。
Java 示例:电梯状态切换
```java
// 状态接口
interface State {
void handle();
}
// 具体状态
class OpenState implements State {
public void handle() {
System.out.println("Elevator is open.");
}
}
class CloseState implements State {
public void handle() {
System.out.println("Elevator is closed.");
}
}
// 上下文
class Elevator {
private State state;
public void setState(State state) {
this.state = state;
}
public void request() {
state.handle();
}
}
// 测试
public class StateTest {
public static void main(String[] args) {
Elevator elevator = new Elevator();
elevator.setState(new OpenState());
elevator.request();
elevator.setState(new CloseState());
elevator.request();
}
}
```
