使用场景:
参考https://www.cnblogs.com/java-my-life/archive/2012/06/08/2538146.html这里的一句话:
状态模式的功能就是分离状态的行为,通过维护状态的变化,来调用不同状态对应的不同功能。
类关系图:
State一般设计为接口,定义状态的行为,Context持有State对象,状态的切换可以放在Context做(Context必须知道所有状态),也可以放在各个ConcreteState里做(ConcreteState之间必须互相依赖),两种方式各有各的优缺点,需要视场景而决定。