观察者模式的原理和应用?

发布于

一、定义

定义对象间一对多依赖,当一个对象状态变化时,所有依赖它的对象自动收到通知并更新。也叫发布-订阅模式。

二、结构

  • Subject(主题):维护观察者列表,提供注册/注销/通知方法。
  • Observer(观察者):定义更新接口。

三、JDK 实现

// 主题
public class Subject extends Observable {
    public void change() {
        setChanged();
        notifyObservers("data");
    }
}
// 观察者
public class MyObserver implements Observer {
    public void update(Observable o, Object arg) { ... }
}

四、应用

  • Spring 的事件机制(ApplicationEvent + ApplicationListener)。
  • 消息队列的发布订阅。
  • GUI 事件监听。