From 05db346f5c0785e0f176cc82b83f22b827563cb5 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Fri, 30 Oct 2026 20:19:44 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E8=AE=BE=E8=AE=A1=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=20-=20=E7=8A=B6=E6=80=81.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充糖果机示例中状态模式实现的说明,并对参考书目进行文字校对。 --- notes/设计模式 - 状态.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/notes/设计模式 - 状态.md b/notes/设计模式 - 状态.md index a863b47a..698af242 100644 --- a/notes/设计模式 - 状态.md +++ b/notes/设计模式 - 状态.md @@ -11,6 +11,8 @@

+不用状态模式时,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.