状态模式

147 阅读1分钟

定义

允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类

特点

  1. 将一群行为封装在状态对象中
  2. context 的行为随时可委托到那些状态对象中的一个
  3. context 内部的状态的改变,context 行为也会跟着改变
  4. context 的客户对状态对象了解不多

状态模式与策略模式

策略模式

  1. 客户通常主动指定 context 所需要组合的策略对象
  2. 通常只有一个最适合的策略对象

状态模式

  1. 客户可能无需知道 context 内部组合的状态
  2. 可以随着时间使用不同的状态对象

总结

  1. 策略模式通过组合不同的对象来改变行为
  2. 状态模式在 context 内简单地改变状态对象来改变行为