State 状态模式
状态模式:
允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。
其别名为状态对象(Objects for States),状态模式是一种对象行为型模式。结构图:
示例类图:
示例代码:
public interface State {
public void handle();
}
public class StartState implements State{
@Override
public void handle() {
System.out.println("Player is in start state");
}
}
public class StopState implements State{
@Override
public void handle() {
System.out.println("Player is in stop state");
}
}
public class Context {
private State state;
public void request() {
state.handle();
}
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
}
}
// 测试
public class StateTest {
public static void main(String[] args) {
Context context = new Context();
StartState startState = new StartState();
context.setState(startState);
context.request();
context.setState(new StopState());
context.request();
}
}