糖果机的实现:糖果机有四个状态NoQuarterHasQuarterSoldSoldOut
 影响糖果机的行为有:<1>.投25分硬币insertQuarter();<2>退币ejectQuarter();<3>转动曲柄turnCrank();<4>分发糖果dispense()

        分析:四个状态和四个行为决定糖果机要做出的响应,即4*4 种响应。

    1普通想法:int state;//状态
                            定义四个整型常量表示四个状态 final static int NoQuarter = 0、final static int HasQuarter = 1、~ ~ ~
                            四个行为的每个行为实现时,都要用if判断当前state状态,根据四个状态作具体实现  。
            此想法,没有好好利用,面向对象的特性


    2有趣的想法:使用状态模式实现。
                                定义一个抽象状态接口IState、四个具体实现类内部分别都实现自己的四种行为。通过使用多态,同样也实现了16种响应。                         
       





状态模式