文章目录
一、状态模式(State Pattern)
类型:行为型模式
功能:
对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。
二、例子
1、菜鸟教程例子
1.1、定义状态接口
public interface State {
public void doAction(Context context);
}
1.2、定义开始状态实现类
public class StartState implements State {
public void doAction(Context context) {
System.out.println("Player is in start state");
context.setState(this);
}
public String toString(){
return "Start State";
}
}
1.3、定义停止状态实现类
public class StopState implements State {
public void doAction(Context context) {
System.out.println("Player is in stop state");
context.setState(this);
}
public String toString(){
return "Stop State";
}
}
1.4、创建 Context 类
public class Context {
private State state;
public Context(){
state = null;
}
public void setState(State state){
this.state = state;
}
public State getState(){
return state;
}
}
1.5、使用 Context 来查看当状态 State 改变时的行为变化。
public class StatePatternDemo {
public static void main(String[] args) {
Context context = new Context();
StartState startState = new StartState();
startState.doAction(context);
System.out.println(context.getState().toString());
StopState stopState = new StopState();
stopState.doAction(context);
System.out.println(context.getState().toString());
}
}
2、spring-statemachine-core源码
三、其他设计模式
创建型模式
结构型模式
行为型模式