1. 问题引入;
2. 第一版代码实现;
3. 问题指出;
4. 问题解决;
5. 第二版代码实现;
6. 定义状态模式与解释;
7. 总结;
8. 解决赢家状态问题。
1. 问题引入
糖果机状态改变图
上面状态变化图的含义是,圆圈是状态,箭头是状态变换的行为。
2. 第一版代码实现
我们要实现上图的糖果转换机这个类,包含它的各个状态以及行为!
我们看看我们需要一些什么?(记住:在不同的状态,针对行为调用,状态会有不同的反应)
现在让我们看看投入25分钱这个动作
我们这里采用的是一个通用的技巧,通过条件语句来判断状态,针对不同状态采取不同的代码实现。
下面让我们接着看看,糖果机的代码。