在 Java 观察者模式(Observer Pattern) 中,通常包含以下几个核心角色:
也称为 Observable,负责:
在 Java 中:
java.util.Observable(已过时)interface Subject {
void registerObserver(Observer o);
void removeObserver(Observer o);
void notifyObservers();
}
定义一个更新接口,用于在主题状态变化时接收通知。
interface Observer {
void update();
}
实现 Subject 接口:
notifyObservers()class ConcreteSubject implements Subject {
private List<Observer> observers = new ArrayList<>();
private int state;
public void setState(int state) {
this.state = state;
notifyObservers();
}
public void notifyObservers() {
for (Observer o : observers) {
o.update();
}
}
}
实现 Observer 接口:
update() 中定义具体响应逻辑class ConcreteObserver implements Observer {
private ConcreteSubject subject;
public void update() {
System.out.println("状态已更新");
}
}
负责:
| 角色 | 作用 |
|---|---|
| Subject | 管理观察者并通知变化 |
| Observer | 接收通知的接口 |
| ConcreteSubject | 具体被观察者 |
| ConcreteObserver | 具体观察者 |
| Client | 组装并使用模式 |
如果你需要 Java 原生实现(Observable / Observer) 或 Spring 中的观察者模式示例,也可以告诉我。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。