私が教えられた、そしてそれゆえに制限されているのは、オブジェクトをハンドラーとして渡すことです。私はJavaとObjective-Cプログラミングプロジェクトの両方でこのアプローチを使用しましたが、機能します。
しかし、オブジェクトではなく、クラスをハンドラーとして登録するフレームワークに出くわしました。フレームワークがオープンソースであり、それがどのように機能するかを確認できることを望みますが、そうではありません:/。
注意してください!クラスを登録した後、イベントを処理するための非静的メソッドを実装します。それらが静的である場合、これがどのように機能するかは明らかであり、私はこのアプローチを本当に嫌います。
だから、これらは私の質問です:
- クラスハンドラーはどのように機能し、通常のオブジェクトハンドラーとは異なりますか?
- いつ、どちらをお勧めしますか?
- このパターンには名前がありますか?
オブジェクトハンドラーの意味:
Java:
button.addActionListener(handlerObject);
クラスハンドラーの意味:
Java:
object.addCrazyHandler(MyHandler.class);