设计模式--状态模式

基本常识:策略模式与状态模式是双胞胎,在出生时才分开。

假设公司有个糖果机,1当糖果机由糖果,投入25分钱,转动曲柄,出来糖果, 2.当糖果机没有糖果,投入25分钱,点击退回25分钱。如何设计才能更好维护并且有弹性。

让我们来分析这个系统。这个系统有四个状态 :1.没有25分钱,2有25分钱,3糖果出售,4糖果售罄。



假设上面是我们初始设计的代码,它没有什么问题。

有一天ceo决定玩的新的,他说每当有人转同曲柄,就会有10%概率得到两颗糖。这样就要在每个方法里面改了。





中奖状态

其它代码就不列出了。

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

状态模式与策略模式比较。

推荐阅读更多精彩内容