状态模式
内容参考 w3cschool
分类:行为型设计模式
应用:红绿灯
目录
UML类图
红绿灯
创建状态接口
State
public interface State {
/**
* 行为调用
* @param context 内容
*/
void doAction(Context context);
}
创建内容类
Context
public class Context {
private State state;
public Context() {
state = null;
}
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
}
}
创建 状态实体类
StartState
public class StartState implements State{
@Override
public void doAction(Context context) {
System.out.println("[Start-State]");
context.setState(this);
}
@Override
public String toString() {
return "⚪[Start]";
}
}
StopState
public class StopState implements State{
@Override
public void doAction(Context context) {
System.out.println("[Stop-State]");
context.setState(this);
}
@Override
public String toString() {
return "⏹[Stop]";
}
}
运行测试
public class ExecuteMain {
public static void main(String[] args) {
Context context = new Context();
StartState startState = new StartState();
StopState stopState = new StopState();
startState.doAction(context);
System.out.println(context.getState().toString());
stopState.doAction(context);
System.out.println(context.getState().toString());
}
}
[Start-State]
⚪[Start]
[Stop-State]
⏹[Stop]
Process finished with exit code 0