事件源生成模式

来源:互联网 发布:mysql事务语句实例 编辑:程序博客网 时间:2024/06/11 09:45
设有一个事件:
interface XXXListener {
void event1Happens(String param);
void event2Happens(String param);
}
可以做一个对应的类:
class XXXDispatcher extends Vector implements XXXListener {
 public void event1Happens(String param) {
    for (XXXListener listener: this) {
    listener.event1Happens(param);
}
}
 public void event2Happens(String param) {
    for (XXXListener listener: this) {
    listener.event2Happens(param);
}
}
}
implements XXXListener不是必须的,只是现在大多数IDE都支持直接implements一个接口,可以自动生成所有的方法。
然后事件源addXXXListener和removeXXXListener时直接调用XXXDispatcher.add,remove
需要触发事件1的时候直接调用XXXDispatcher.event1Happens(param);