状态模式

64 阅读1分钟

状态模式

  1. 状态模式
  2. 备忘录模式

状态模式

if-else bad smell,如果新加状态需要持续修改(违反开闭原则) image.png 如何修改?提取抽象类(每个状态写具体实现代码) image.png 结构

image.png 状态转换

  • 优势:当具体某个操作时,只是用当前的状态对象决定操作完下一个对象
  • 如果没有状态模式,那就要在操作中通过if当前什么状态决定什么操作了。 image.png

备忘录模式(过时)

  • 需求:对象状态快照 结构:目前普遍用序列化的方式了 image.png