观察者模式 事件驱动模型 傻傻分不清楚

本文探讨了观察者模式与事件驱动模型的相似之处和不同点。观察者模式中,类A状态变化会通知关注它的类B,通过内部列表管理和通知方法实现状态交流。而事件驱动模型中,事件源触发事件,事件监听者接收并处理,增加了事件类的独立性。Java的Observer和Observable类代表观察者模式,EventObject和EventListener则构成事件模型。尽管两者在概念上容易混淆,但它们在类的设计和事件处理上有明显的区分。
摘要由CSDN通过智能技术生成

说实话。没有写这篇文字之前。我以为这两者是同一个东西。因为从我的经验来讲。就是观察者,观察者,就是你要关注某个东西。关注某个东西的什么呢。肯定就是状态变化了。观察者模式就是就是某个类A状态变化了要及时通知到关注这个东西的一群类B。

按照这个模式。就是类A里头要有一个list 存放类B。 然后A里头要有增加删除list的方法。还要有通知类B的方法。当然怎么通知呢。当然是调用B的一个方法。这样。就起到了A跟B状态交流的目的了。

如果按照这个。事件驱动模型也很像啊。 有一类事件。当然还有事件源。然后有事件监听者。 这里事件加事件源就是刚才的类A的角色啊。事件监听者就是刚才的类B的角色啊。 要真说不同。就是类的设计的个数。不同。前面就两个类A,B。后面是三个类。单独把事件event单独独立了出来。

jdk里头有单独的观察者模式的类 java.util.Observer 跟 java.util.Observable 。前者是一个接口。里头就一个方法 update。也就是我刚提到的类B的方法。后者就是我刚才说的类。里头有一个list之类的东西。存放B。通知的时候。就是调用B的update。

在这里插入图片描述
在这里插入图片描述
jdk里头也有一套事件模型的类。java.util.EventObject 跟java.util.EventListener。但是EventListener本身是个空接口。也就是实际的方法是要留給子接口来定义的。比如java.awt.ActionListener

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值