美文网首页
Head First 设计模式(10) 状态模式

Head First 设计模式(10) 状态模式

作者: kaiker | 来源:发表于2021-07-18 15:08 被阅读0次

1、本章的例子——糖果机

糖果机有许多操作、状态,每个状态经过操作后可以转移到另外的状态

糖果机的操作

运用状态模式,将状态抽象为类,在运行时,各个状态以对象的方式进行组合

糖果机状态,方法就是各个操作
基于状态的糖果机
  • 每个状态的行为局部化到它自己的类中
  • 将容易产生问题的if语句删除,以方便日后的维护
  • 让每一个状态对修改关闭,让糖果机对扩展开放

2、状态模式

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

  • 使用组合通过简单引用不同的状态对象来造成类改变的假象
  • 与策略模式不同的是,状态模式可以在组合的状态间游走,不断变化行为(状态)
  • context会将行为委托给状态
状态模式类图

相关文章

网友评论

      本文标题:Head First 设计模式(10) 状态模式

      本文链接:https://www.haomeiwen.com/subject/ulgwpltx.html