状态模式(State)
意图:
允许一个对象在起内部状态改变时改变它的行为。对象看起来似乎修改了它的类。
适用性:
在下面的两种情况下均可使用状态模式:
1)一个对象的行为取决于它的状态, 并且它必须在运行时刻根据状态改变它的行为
2)一个操作中含有庞大的多分支的条件, 且这些分支依赖于该对象的状态.
效果:
状态模式有下面一些效果:
1)它将与特定状态相关的行为局部化, 并且将不同状态的行为分割开来
2)它使得状态转换显式化
3)状态对象可被共享
实现:
实现状态模式有多方面的考虑:
1)谁定义了状态转换
2)基于表的另一种方法
3)创建和销毁状态对象
意图:
允许一个对象在起内部状态改变时改变它的行为。对象看起来似乎修改了它的类。
适用性:
在下面的两种情况下均可使用状态模式:
1)一个对象的行为取决于它的状态, 并且它必须在运行时刻根据状态改变它的行为
2)一个操作中含有庞大的多分支的条件, 且这些分支依赖于该对象的状态.
效果:
状态模式有下面一些效果:
1)它将与特定状态相关的行为局部化, 并且将不同状态的行为分割开来
2)它使得状态转换显式化
3)状态对象可被共享
实现:
实现状态模式有多方面的考虑:
1)谁定义了状态转换
2)基于表的另一种方法
3)创建和销毁状态对象
4)使用动态继承