java设计模式--观察者模式和事件监听器模式

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

文章转载于:http://www.java2000.net/p9452

复习设计模式,看到observer观察者模式,说法是该模式和iterator迭代器模式类似已经被整合进jdk,但是jdk提供了两种接口:

一、java.util.Observer —— 观察者接口 对应:
java.util.Observable ——受查者根类

二、java.util.EventListener —— 事件监听/处理接口 对应:
java.util.EventObject —— 事件(状态)对象根类

研究了一下发现这两种接口的目的、功能其实是一样的(仅在事件模型的结构上有些许差异),先看EventListener事件监听器模式:

1、首要定义事件源对象(事件源相当于单击按钮事件当中的按钮对象、属于被监听者):

  1. public class DemoSource {   
  2.     private Vector repository = new Vector();//监听自己的监听器队列   
  3.     public DemoSource(){}   
  4.     public void addDemoListener(DemoListener dl) {   
  5.            repository.addElement(dl);   
  6.     }   
  7.     public void notifyDemoEvent() { //通知所有的监听器   
  8.            Enumeration enum = repository.elements();   
  9.            while(enum.hasMoreElements()) {   
  10.                    DemoListener dl = (DemoListener)enum.nextElement();   
  11.                  dl.handleEvent(new DemoEvent(this));   
  12.            }   
  13.     }   
  14. }  



2、其次定义事件(状态)对象(该事件对象包装了事件源对象、作为参数传递给监听器、很薄的一层包装类):

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值