-1

私は Java についてこの疑問を持っています。人々がイベント リスナーを作成するとき、インターフェイスを実装し、特定のタスクを達成するためにインターフェイスに特定の関数を定義します。私の疑問は、インターフェースを実装する代わりに、適切な名前で関数を定義するだけでよいかということです。

また、インターフェイスはイベント リスナーの実現にどのように役立ちますか?

4

2 に答える 2

0

Listener インターフェースを使用すると、実装の自由度が大幅に高まります。

この方法では、特定のクラスに特定の関数を実装する必要はありません。インターフェイスの実装は同じように見えますが、そうではありません。リスナーの機能はまだ単一の関数ですが、関数は通常軽量オブジェクトにあります。それでも、必要に応じて、多くのプログラム メカニズムをリスナー内に実装できます。

また、実行時にリスナーを変更できます。オーバーライドされた関数は変更できません。

ここで合成 (継承を介して)を使用する正当な理由がたくさんあります。

これを本当に理解したい場合は、「Heads first: Design Patterns」を参照することをお勧めします。Amazon の「内部を見る」機能には、このパターンを大きく説明する完全な第 1 章が含まれています。

于 2013-10-06T19:56:55.680 に答える
0

多くの異なるクラスが同じイベントをリッスンする必要があり、Java では多重継承が許可されていないためです。

于 2013-10-06T19:41:50.063 に答える