知识卡片
Java已内置Observable简化观察者实现
内容
[[观察者模式的定义与四个角色]]中被观察者需自己实现的增删通知逻辑,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对象,删除了增加、删除观察者的方法,简单了很多。