《Head First 设计模式》之状态模式——糖果机

状态模式(State)

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

  • 策略模式与状态模式的区别
    • 状态主体(拥有者)持有状态对象,运行时可以通过动态指定状态对象来改变类的行为
    • 策略主体持有算法族对象,运行时可以通过动态选择算法族中的算法(策略)来改变类的行为也就是说,状态模式与策略模式都支持运行时的多态,并且其实现方式都是组合 + 委托但是这并不代表这两种模式是相同的,因为它们的目标不同:
      • 状态模式实现了算法流程可变(即状态切换,不同的状态有不同的流程)
      • 策略模式实现了算法细节可选(即选择算法族内的算法,一个算法族包含多个可选算法)

原文地址:https://www.cnblogs.com/-1307/p/6441470.html