# 行为型-观察者模式
# 定义
观察者模式就是存在一个主题,可以有很多的观察者订阅这个主题,如果这个主题有消息变动,则会主动提醒这个主题的订阅者。
# 应用场景
- 消息队列就是一个典型的观察者模式,消息队列中可以创建主题,用户可以针对主题进行订阅,如果订阅了指定的主题,当队列中有消息推送进来的时候,会主动向所有的订阅者推送消息
- 微信订阅号也是一个观察者模式的实现
# Java实现
- Java中内置了
Observable
类,我们可以快速的继承这个类来创建主题,而观察者可以实现Observer
接口来接受消息的推送 - 目前
Observable
与Observer
因为序列化和多线程安全的问题在Java9以后已经弃用,可以用PropertyChangeSupport代替实现(详见)