观察者模式的原理和应用?
设计模式面试题发布于
一、定义
定义对象间一对多依赖,当一个对象状态变化时,所有依赖它的对象自动收到通知并更新。也叫发布-订阅模式。
二、结构
- 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 事件监听。