zoukankan      html  css  js  c++  java
  • 状态模式

    第十个模式:状态模式

    10.1问题引入

    我们在这里所讨论的是一个通用的技巧:如何对对象内的状态建模-通过创建一个实例变量来持有状态值,并在方法内书写条件代码来处理不同的状态。

    糖果机的问题:

    image

    这样的设计,会出现以下的问题:

    image

     

    10.2解决方案:

    image

    定义状态接口和类:

    image

    定义每个状态类:

    image

    。。。。。。。。。。。。。

    然后,定义GumballMachine类:

    image

    我们可以看到,这样可以实现哪些事情:

    image

    10.3引入状态模式:

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

    image

    以状态模式而言,我们将一群行为封装在状态对象中,context的行为随时可委托到那些状态对象中的一个。

    对于状态模式,我们可以对主题对象自由的扩张状态,如下:

    image

    image

    10.4小结:

    image

  • 相关阅读:
    64_q2
    64_q1
    64_p10
    64_p9
    64_p8
    64_p7
    64_p6
    64_p5
    64_p4
    64_p3
  • 原文地址:https://www.cnblogs.com/maverick-fu/p/4504383.html
Copyright © 2011-2022 走看看