国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Notifier類實現Event/Listener更容易

2019-11-18 14:49:27
字體:
來源:轉載
供稿:網友

  Event/Listener模式在java中很常見,并且很有用,但要自己來實現這個模式是一件很費時間并且單調乏味的工作。每次你都不得不和List或Vector打交道,每次你都不得不處理Add方法、Remove方法,然后你還得遍歷整個列表來通知所有的監聽者,這才算完。

假如能象下面這樣簡單就好了:

Notifier notifier = new Notifier("actionPerformed");
...
notifier.addListener( someObject );
...
notifier.notify( new ActionEvent(this) );
只要幾行代碼就能夠完成一切。

下面的Notifier類就達到了這個目的:

package com.generationjava.lang;

import java.util.*;
import java.lang.reflect.*;

public class Notifier {

PRivate ArrayList listeners = new ArrayList();
private String listenerMethod;

public Notifier(String name) {
this.listenerMethod = name;
}

public void addListener(Object not) {
this.listeners.add(not);
}
public void removeListener(Object not) {
this.listeners.remove(not);
}

public void notify(EventObject event) {
Iterator itr = listeners.iterator();
while(itr.hasNext()) {
try {
Object listener = itr.next();
Class clss = listener.getClass();
Method method = clss.getMethod(
this.listenerMethod,
new Class[] { event.getClass() }
);
method.invoke( listener, new Object[] { event } );
} catch(Exception e) {
e.printStackTrace();
}
}
}
}

這個類并沒有經過性能上的優化,而且它是不同步的,但在編寫一組Event/Listener API的時候,可以很快把握它并且節省時間。利用Notifier類,你就能執行這樣一個常見的任務而不必每次都為之編寫代碼。




摘自:ZDnet   時間:2003年9月10日

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉隆县| 丽江市| 平武县| 布尔津县| 寿光市| 邵阳市| 厦门市| 同江市| 上饶县| 股票| 朔州市| 游戏| 深泽县| 盈江县| 临漳县| 汉川市| 米林县| 获嘉县| 嘉荫县| 大埔区| 禹城市| 潞西市| 定远县| 双桥区| 隆子县| 河曲县| 渑池县| 拜泉县| 灵台县| 涿州市| 白银市| 西乌珠穆沁旗| 吉水县| 鹰潭市| 紫阳县| 珠海市| 灵璧县| 万年县| 怀柔区| 崇明县| 故城县|