定义
允许一个对象在其内部状态改变的时候,改变其行为
说明
1.不需要清楚状态的改变,它只用调用状态的方法就行。状态的改变是在状态内部发生的。这就是"状态模式"。
UML
实例
使用场景
优缺点
扩展
一、状态模式和策略模式的区别
1.状态模式的特点是:环境角色有明显的状态转移,在环境类的生命周期里,会有几个不同的状态对象被使用
2.策略模式的特点是:一旦环境角色选择了一个策略类,那么在整个环境类的生命周期里,他都不会改变这个具体策略类
3.策略模式的环境类自己选择一个具体策略,状态模式的环境类是被外在原因放进一个具体的状态中。
4.策略模式所选策略往往并不会明显的告诉客户端所选取的具体策略,状态模式则相反,环境角色所处的状态是明显的告诉给客户端的。