知识卡片

Java已内置Observable简化观察者实现

普通读书笔记卡 · 1872.b.4

内容

[[观察者模式的定义与四个角色]]中被观察者需自己实现的增删通知逻辑,Java早期就内置提供: 继承java.util.Observable,状态变化时调用setChanged()再notifyObservers()即可;观察者 只需实现Observer接口。发散:这是 [[迭代器模式已被语言内置,几乎不需要自己实现]]同一现象在观察者模式上的重演——足够通用 的模式最终会被语言标准库吸收。

参考来源

- 位置:《设计模式之禅(第2版)》第22章《观察者模式》(源文件:_epub-src/text/part0102.html) - 结论依据:原文说明"JDK中提供了:java.util.Observable实现类和java.util.Observer接口",并展示HanFeiZi改为继承Observable、调用setChanged()+notifyObservers()完成通知的简化实现。 - 原始内容:Java从一开始诞生就提供了一个可扩展的父类,即java.util.Observable……JDK中提供了:java.util.Observable实现类和java.util.Observer接口……我们看一下我们程序的变更……改变得不多,引入了一个java.util.Observable对象,删除了增加、删除观察者的方法,简单了很多。