观察者模式示例代码
- 手机
- 2025-08-26 10:45:01

观察者模式定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都会得到通知并自动更新。常见于消息队列(MQ)、Zookeeper 事件通知等场景。
import java.util.ArrayList; import java.util.List; // 主题接口 interface Subject { void registerObserver(Observer observer); void removeObserver(Observer observer); void notifyObservers(); } // 具体主题类 class NewsAgency implements Subject { private List<Observer> observers = new ArrayList<>(); private String news; @Override public void registerObserver(Observer observer) { observers.add(observer); } @Override public void removeObserver(Observer observer) { observers.remove(observer); } @Override public void notifyObservers() { for (Observer observer : observers) { observer.update(news); } } public void setNews(String news) { this.news = news; notifyObservers(); } } // 观察者接口 interface Observer { void update(String news); } // 具体观察者类 class NewsChannel implements Observer { private String news; @Override public void update(String news) { this.news = news; System.out.println("Received news: " + news); } }