<head first 设计模式>中的样例非常不错,想制造一个自己主动交易的糖果机,糖果机有四个状态:投入钱不足,投入钱足够,出售糖果,糖果售罄. 糖果机的当前状态处于当中不同的状态时,它针对同一个操作的反映动作也不同. 传统面向过程编程会套用if-else对不同的状态下分别处理,逻辑麻烦并且不具有可拓展性. 状态模式:同意一个对象在其内部状态改变时改变它的行为.对象看起来似乎改动了它的类. 状态模式的重点在于状态转换,非常多时候.对于一个对象的状态,我们都是让这个对象包括一个状态的属性,这个…