状态模式
对象的行为依赖于它的状态,并且可以根据它的状态改变而改变它的相关行为。Context类是一个状态管理器,控制状态转换。
public interface State {
void changeState(Context context);
void action();
}
public class AliveState implements State {
@Override
public void action() {
System.out.println("alive action");
}
}
public class DeathState implements State {
@Override
public void action() {
System.out.println("death action");
}
}
public class Context {
private State state;
private String value;
public void run() {
changeState();
this.state.action();
}
private void changeState() {
if ("alive".equals(value)) {
this.state = new AliveState();
}
if ("death".equals(value)) {
this.state = new DeathState();
}
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
@Test
public void StateTest() {
Context context = new Context();
context.setValue("alive");
context.run();
context.setValue("death");
context.run();
}