文章转载于: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、其次定义事件(状态)对象(该事件对象包装了事件源对象、作为参数传递给监听器、很薄的一层包装类):