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

Posted ADong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Head First 设计模式》之状态模式——糖果机相关的知识,希望对你有一定的参考价值。

状态模式(State)

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

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

 

 

以上是关于《Head First 设计模式》之状态模式——糖果机的主要内容,如果未能解决你的问题,请参考以下文章

Head First设计模式之备忘录模式

Head First设计模式之观察者模式

Head First 设计模式-状态模式

Head First 设计模式 --10 状态模式

Head First设计模式之策略模式

Head First 设计模式之单件模式(Singleton Pattern)