状态模式
定义:允许对象在状态改变时改变它的行为,对象看起来好像修改了它的类。
类图

状态模式和策略模式
- 状态模式和策略模式的类图一样,本质上都是针对对象行为进行封装,区别在于其不同的“意图”
- 策略模式用于给Context对象选择最合适的行为。
- 状态模式主要在于处理Context对象在运行过程中的不同状态下所表现的不同行为。
示例
//State public interface GameState { void doAction(); } //ConcreteState public class GameStart implements GameState { @Override public void doAction() { System.out.println("开始游戏!"); } } //ConcreteState public class GameEnd implements GameState { @Override public void doAction() { System.out.println("结束游戏!"); } } //Context public class Context { private GameState state; public Context(){ state = new GameStart();//设置Context的初始状态 } public void setState(GameState state) { this.state = state; } void doAction(){ state.doAction(); } } public class Client { public static void main(String[] args){ Context context = new Context(); context.setState(new GameStart()); context.doAction(); context.setState(new GameEnd()); context.doAction(); } }
运行结果

语言是思想的载体

浙公网安备 33010602011771号