状态模式State
根据状态决定动作
不同状态下的同一动作有不同的实现,就是一个简单的多态。简单面向接口编程
应用:TCP 不同的状态下open close ack的方法的实现是不一样的,扩展方法是不方便的,方法不扩展可以使用状态模式
线程状态案例
- 线程是上下文
- 线程状态是State
- Running,Blocking等等是具体的状态

状态接口
public abstract class ThreadState_ {
abstract void move(Action input);
abstract void run();
}
具体状态
public class NewState extends ThreadState_ {
private Thread_ t;
public NewState(Thread_ t) {
this.t = t;
}
@Override
void move(Action input) {
if(input.msg == "start")
t.state = new RunningState(t);
}
@Override
void run() {
}
}
上下文
public class Thread_ {
ThreadState_ state;
void move(Action input) {
state.move(input);
}
void run() {
state.run();
}
}
posted on 2025-10-14 23:11 chuchengzhi 阅读(9) 评论(0) 收藏 举报
浙公网安备 33010602011771号