Update 设计模式 - 状态.md

补充糖果机示例中状态模式实现的说明,并对参考书目进行文字校对。
This commit is contained in:
CyC2018
2026-10-30 20:19:44 +08:00
parent 07bc076660
commit 05db346f5c
+3 -1
View File
@@ -11,6 +11,8 @@
<div align="center"> <img src="pics/state-gumball.png" width="740px"/> </div><br>
不用状态模式时,GumballMachine 的每个方法都要先用 if-else 判断当前处于哪种状态;新增一种状态,四个方法都要修改。下面的实现把每种状态写成一个 State 的实现类:GumballMachine 只把调用转交给当前的 state 对象,状态类在方法中调用 setState() 切换到下一个状态。例如在 NoQuarterState 中投币,会切换到 HasQuarterState,此后再投币就会被拒绝。
```java
public interface State {
/**
@@ -300,4 +302,4 @@ No gumball dispensed
## 参考资料
- 弗里曼. Head First 设计模式 [M]. 中国电力出版社, 2007.
- Gamma E. 设计模式: 可复用面向对象软件的基础 [M]. 机械工业出版社, 2007.
- Gamma E. 设计模式:可复用面向对象软件的基础 [M]. 机械工业出版社, 2007.