模式介绍
目前理解还不深, 待定
代码实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public interface BizState {
void justDoIt();
}
public class StateBlock implements BizState {
public void justDoIt() {
System.out.println("block状态时, 完成要做的事!");
}
}
public class StateRun implements BizState {
public void justDoIt() {
System.out.println("runnable状态时, 完成要做的事!");
}
}
public class StateDefault implements BizState {
public void justDoIt() {
System.out.println("default状态时, 完成要做的事!");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Context {
private BizState state;
public Context() {
state = new StateDefault();
}
public void block() {
state = new StateBlock();
}
public void run() {
state = new StateRun();
}
public void justDoIt() {
state.justDoIt();
}
}
从中也可以看出, 把所有状态抽象成一个接口; 每个状态要单独实现状态接口, 并在Context中添加相应的切换方法 以后新增状态时, 重复上面的步骤;
所有的状态都通过Context
对外负责沟通, 具体使用哪个状态实现类都由Context
管理