题目
介绍下观察者模式
答案
观察者模式(Observer Pattern)定义对象间的一种一对多依赖关系,当“被观察者”状态改变时,所有“观察者”都会收到通知并自动更新。 适用场景: - 实现事件订阅/广播机制。 - 实时更新界面、通知机制、消息推送等。 Java 示例:天气预报 ```java // 观察者接口 interface Observer { void update(float temperature); } // 主题接口 interface Subject { void register(Observer o); void remove(Observer o); void notifyObservers(); } // 具体主题 class WeatherData implements Subject { private List<Observer> observers = new ArrayList<>(); private float temperature; public void register(Observer o) { observers.add(o); } public void remove(Observer o) { observers.remove(o); } public void setTemperature(float temperature) { this.temperature = temperature; notifyObservers(); } public void notifyObservers() { for (Observer o : observers) { o.update(temperature); } } } // 具体观察者 class PhoneDisplay implements Observer { private String name; public PhoneDisplay(String name) { this.name = name; } public void update(float temperature) { System.out.println(name + " receives temperature update: " + temperature); } } // 测试 public class ObserverTest { public static void main(String[] args) { WeatherData weather = new WeatherData(); Observer phone1 = new PhoneDisplay("Phone1"); Observer phone2 = new PhoneDisplay("Phone2"); weather.register(phone1); weather.register(phone2); weather.setTemperature(25.0f); weather.setTemperature(30.0f); } } ```