设计模式--状态模式

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

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

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


设计模式--状态模式_第1张图片


设计模式--状态模式_第2张图片

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

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


设计模式--状态模式_第3张图片


设计模式--状态模式_第4张图片


设计模式--状态模式_第5张图片


设计模式--状态模式_第6张图片
设计模式--状态模式_第7张图片
中奖状态

其它代码就不列出了。

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

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

你可能感兴趣的:(设计模式--状态模式)