文章转载于:http://www.java2000.net/p9452
复习设计模式,看到observer观察者模式,说法是该模式和iterator迭代器模式类似已经被整合进jdk,但是jdk提供了两种接口:
一、java.util.Observer —— 观察者接口 对应:
java.util.Observable ——受查者根类
二、java.util.EventListener —— 事件监听/处理接口 对应:
java.util.EventObject —— 事件(状态)对象根类
研究了一下发现这两种接口的目的、功能其实是一样的(仅在事件模型的结构上有些许差异),先看EventListener事件监听器模式:
1、首要定义事件源对象(事件源相当于单击按钮事件当中的按钮对象、属于被监听者):
- public class DemoSource {
- private Vector repository = new Vector();//监听自己的监听器队列
- public DemoSource(){}
- public void addDemoListener(DemoListener dl) {
- repository.addElement(dl);
- }
- public void notifyDemoEvent() { //通知所有的监听器
- Enumeration enum = repository.elements();
- while(enum.hasMoreElements()) {
- DemoListener dl = (DemoListener)enum.nextElement();
- dl.handleEvent(new DemoEvent(this));
- }
- }
- }
2、其次定义事件(状态)对象(该事件对象包装了事件源对象、作为参数传递给监听器、很薄的一层包装类):
- public class DemoEvent

本文探讨了Java中的Observer观察者模式和EventListener事件监听器模式,两者在事件处理中有相似之处,但结构上有所差异。Observer模式简化了模型,大部分工作由Observable类实现,而EventListener模式中事件源和事件状态是分开的。两种模式都是基于订阅-发布模式,但EventListener允许自定义事件处理方法名称,Observer则预设了update方法。


被折叠的 条评论
为什么被折叠?



