设计模式之观察者模式

本文介绍了观察者模式的基本概念,探讨了一对多依赖关系如何在对象间建立,使得当一个对象的状态发生变化时,所有依赖该对象的其他对象都能自动接收到通知并作出相应的更新。文章还讨论了Java内置观察者模式的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义:定义了一组对象之间的一对多依赖,这样一来,当一个对象状态改变时,他的所有依赖者都会收到通知并自动更新。

简略图如下:
观察者模式图
主题和观察者之间是一种松耦合设计:主题只知道观察者实现了某个接口(Observer),而不知道观察者的具体情况。主题只维持一个对象列表,这个列表保存了所有已经注册的观察者,当有变化发生时只需要通知所有注册的观察者即可。当有新的观察者时,只需要实现观察者接口,并在列表中注册。

设计原则:为了交互对象之间的松耦合设计而努力。
Java内置了观察者模式,在java.util包内
java.util.Observer 观察者(接口)
java.util.Observable 被观察者(类)
由于被观察者是一个类,我们只能继承它的方法,至于它通知观察者的顺序我们就不清楚了,这里违反了一个设计原则。
设计原则:多用组合,少用继承。
JDK中实现了观察者模式的有:Swing 、Java Beans。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值