使用 Java 观察者模式(Observer Pattern),主要是为了解决 对象之间“一对多”依赖关系下的通信和解耦问题。下面从“为什么用”的角度系统说明:
在系统中经常有这种情况:
一个对象状态变化了,其他多个对象需要知道并做出响应。
如果不用观察者模式,通常会写成:
if (stateChanged) {
a.update();
b.update();
c.update();
}
问题:
✅ 观察者模式让:
ApplicationEvent)java.util.Observable(已过时但经典)java.util.ObserverEventListenerApplicationListenerclass Order {
void pay() {
new SmsService().send();
new EmailService().send();
}
}
interface Observer {
void update();
}
class Order {
List<Observer> observers = new ArrayList<>();
void add(Observer o) { observers.add(o); }
void pay() {
// 只通知
observers.forEach(Observer::update);
}
}
✅ 新增通知方式?
➡ 只加一个 Observer,不改 Order
用 Java 观察者模式,是为了在不修改原有代码的前提下,实现对象状态变化自动通知多个关注者,从而降低耦合、提高扩展性。
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。