糖果機的實現(xiàn):糖果機有四個狀態(tài)NoQuarterHasQuarterSoldSoldOut
 影響糖果機的行為有:<1>.投25分硬幣insertQuarter();<2>退幣ejectQuarter();<3>轉(zhuǎn)動曲柄turnCrank();<4>分發(fā)糖果dispense()

        分析:四個狀態(tài)和四個行為決定糖果機要做出的響應,即4*4 種響應。

    1普通想法:int state;//狀態(tài)
                            定義四個整型常量表示四個狀態(tài) final static int NoQuarter = 0、final static int HasQuarter = 1、~ ~ ~
                            四個行為的每個行為實現(xiàn)時,都要用if判斷當前state狀態(tài),根據(jù)四個狀態(tài)作具體實現(xiàn)  。
            此想法,沒有好好利用,面向?qū)ο蟮奶匦?/span>。


    2有趣的想法:使用狀態(tài)模式實現(xiàn)。
                                定義一個抽象狀態(tài)接口IState、四個具體實現(xiàn)類內(nèi)部分別都實現(xiàn)自己的四種行為。通過使用多態(tài),同樣也實現(xiàn)了16種響應。                         
       





狀態(tài)模式