# 行为型-观察者模式

# 定义

观察者模式就是存在一个主题,可以有很多的观察者订阅这个主题,如果这个主题有消息变动,则会主动提醒这个主题的订阅者。

# 应用场景

  • 消息队列就是一个典型的观察者模式,消息队列中可以创建主题,用户可以针对主题进行订阅,如果订阅了指定的主题,当队列中有消息推送进来的时候,会主动向所有的订阅者推送消息
  • 微信订阅号也是一个观察者模式的实现

# Java实现

  • Java中内置了Observable类,我们可以快速的继承这个类来创建主题,而观察者可以实现Observer接口来接受消息的推送
  • 目前ObservableObserver因为序列化和多线程安全的问题在Java9以后已经弃用,可以用PropertyChangeSupport代替实现(详见)

(参见)