単純イベントメカニズムJava実装

1193 ワード

簡単で便利なイベント処理方法です.
効果の使用
イベントパブリッシャ:
//    
public static EventTrans<String> AuthFailed = new EventTrans<String>();

//    
AuthFailed.trigger(this, "  ");

イベントハンドラ:
DataProess.AuthFailed.addHandler(new EventHandle<String>() {
    @Override
    public void Handle(Object sender, String e) {
        //    
    }
});

インプリメンテーション
イベントプロセッサ:
public abstract class EventHandle<EventType> {
    public abstract void Handle(Object sender, EventType e);
}

イベント管理:
public class EventTrans<EventType> {
    List<EventHandle<EventType>> handler;

    public EventTrans() {
        handler = new ArrayList<EventHandle<EventType>>();
    }

    public void addHandler(EventHandle<EventType> handle) {
        handler.add(handle);
    }

    public void removeHandler(EventHandle<EventType> handle) {
        handler.remove(handle);
    }

    public void trigger(Object sender, EventType e) {
        for (EventHandle<EventType> handle : handler) {
            handle.Handle(sender, e);
        }
    }
}