一、状态模式(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源码
三、其他设计模式
创建型模式
结构型模式文章来源:https://www.toymoban.com/news/detail-739970.html
- 1、设计模式——装饰器模式(Decorator Pattern)+ Spring相关源码
行为型模式文章来源地址https://www.toymoban.com/news/detail-739970.html
- 1、设计模式——访问者模式(Visitor Pattern)+ Spring相关源码
- 2、设计模式——中介者模式(Mediator Pattern)+ JDK相关源码
- 3、设计模式——策略模式(Strategy Pattern)+ Spring相关源码
- 4、设计模式——状态模式(State Pattern)
- 5、设计模式——观察者模式(Observer Pattern)+ Spring相关源码
到了这里,关于设计模式——状态模式(State Pattern)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!