Javaでは、新しいカスタムイベントを作成するたびに、通常、次の3つのメソッドを追加して作成します。
addDogEventListener(EventListener listener);
removeDogEventListener(EventListener listener);
dispatchDogEventListener(DogEvent event);
次に、別のイベント、たとえばCatEventをディスパッチする場合は、次の3つのメソッドすべてを再度作成する必要があります。
addCatEventListener(EventListener listener);
removeCatEventListener(EventListener listener);
dispatchCatEventListener(CatEvent event);
次に、1種類のCatEventイベントだけを管理したい場合、たとえばMeowの場合、これら3つのメソッドすべてをもう一度コピーして貼り付ける必要がありますか?!addCatMeowEventListener(); ...などのように?
そして通常、私は複数の種類のイベントをディスパッチする必要があります。イベントを送信および処理するための非常に多くのメソッドでクラス全体を埋めるのは非常に乱雑です。それだけでなく、これらの関数には、EventListenerListのループ、リストへのイベントの追加など、非常によく似たコードがあります。
これは、Javaでイベントディスパッチを実行する方法ですか?
私がそれを次のように行うことができるような方法はありますか?
mainApp.addEventListener(CatEvent.MEOW, new EventHandler() { meowHandler(Event e) { });
mainApp.addEventListener(CatEvent.EAT, new EventHandler() { eatHandler(Event e) { });
myCat.addEventListener(DogEvent.BARK, new EventHandler() { barkHandler(Event e) { myCat.run() });
このようにして、さまざまなeventHandlerクラスおよび関数でさまざまなタイプのCatEventを処理でき、さまざまなイベントに対してさまざまなイベントリスナーメソッドを作成し続ける必要はありませんか?
Javaのイベント処理について何かが足りないかもしれませんが、3つのメソッドをコピーして貼り付ける必要がなく、ディスパッチするさまざまな種類のメソッドごとに非常に多くの種類のイベントオブジェクトを作成する必要がないという優れた方法はありますか?
ありがとう!