设计模式之观察者模式
一、简介 观察者模式(发布/订阅模式) ,定义了对象之间一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 有很多项目都用到了该设计模式,比如 Spring的事件机制 、消息队列等。 Java提供了两个接口 java.util.Observable 和 java.util.Observer ,也可以利用这两个接口实现。 类图如下: 观察者模式类图 二、示例 需求背景是气象站发布天气数据,所有订阅了气象站的布告板显示天气数据。 先上类图: enter description here 主题接口 /** * 主题接口 * Created by 2YSP on 2018/1/24. */ public interface Subject { /** * 注册一个观察者 * @param observer */ void registerObserver(Observer observer); /** * 移除一个观察者 * @param observer */ void removeObserver(Observer observer); /** * 通知所有观察者 */ void notifyObservers(); } 观察者接口 public interface Observer { /** * 所有观察者必须实现该方法, * 当气象观测值改变时