From 1ada4ba823c0d30b78615c83c939ad54f8e61314 Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Fri, 30 Oct 2026 20:19:45 +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=E8=A7=82=E5=AF=9F=E8=80=85.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充观察者同步调用的注意事项及 Spring 事件相关说明,对参考文献进行文字校对。 --- notes/设计模式 - 观察者.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/notes/设计模式 - 观察者.md b/notes/设计模式 - 观察者.md index 7b280998..c8e3087c 100644 --- a/notes/设计模式 - 观察者.md +++ b/notes/设计模式 - 观察者.md @@ -123,6 +123,8 @@ CurrentConditionsDisplay.update: 1.0 1.0 1.0 StatisticsDisplay.update: 1.0 1.0 1.0 ``` +需要注意的是,notifyObserver() 在调用 setMeasurements() 的线程中依次同步调用每个观察者,一个观察者耗时过长或抛出异常,后面的观察者就会被拖慢或收不到通知。Spring 事件中的同样问题和解决办法见[Spring 中的设计模式](Spring.md#七spring-中的设计模式)。 + ### JDK 中的应用 - [java.util.Observer](http://docs.oracle.com/javase/8/docs/api/java/util/Observer.html)(JDK 9 起已废弃) - [java.util.EventListener](http://docs.oracle.com/javase/8/docs/api/java/util/EventListener.html) @@ -132,4 +134,4 @@ StatisticsDisplay.update: 1.0 1.0 1.0 ## 参考资料 - 弗里曼. Head First 设计模式 [M]. 中国电力出版社, 2007. -- Gamma E. 设计模式: 可复用面向对象软件的基础 [M]. 机械工业出版社, 2007. +- Gamma E. 设计模式:可复用面向对象软件的基础 [M]. 机械工业出版社, 2007.