南京企业网站设计公司500元怎么在百度上发布信息广告
观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当主题对象的状态发生变化时,所有依赖于它的观察者对象都会收到通知并自动更新。
观察者模式的核心组成部分:
-
Subject(主题/被观察者)
主题是被观察的对象,它维护了一个观察者列表,并提供添加、删除和通知观察者的方法。 -
Observer(观察者)
观察者是一个接口或抽象类,定义了更新自身状态的方法。每个具体的观察者都需要实现这个方法。 -
ConcreteSubject(具体主题)
具体主题实现了主题接口,负责管理观察者列表,并在状态发生变化时通知所有注册的观察者。 -
ConcreteObserver(具体观察者)
具体观察者实现了观察者接口,定义了在收到主题通知后如何更新自己的逻辑。
观察者模式的应用场景
- 事件驱动系统:如 GUI 界面中的按钮点击事件,多个监听器可以订阅同一个按钮事件。
- 发布-订阅模型:如消息队列中,生产者发布消息,消费者订阅消息。
- 股票价格监控:多个用户订阅某个股票的价格变化,当价格变动时,所有用户都会收到通知。
- 天气预报系统:气象站作为主题,多个显示设备(如手机、电视等)作为观察者,实时接收气象数据并更新显示。
示例代码(Java)
以下是一个简单的观察者模式实现示例:
import java.util.ArrayList;
import java.util.List;// 主题接口
interface Subject {void registerObserver(Observer observer);void removeObserver(Observer observer);void notif