この記事では主に Java を使ったイベント駆動機構の実装を紹介します。編集者がそれを参考にさせていただきます。エディターに従って見てみましょう
プロジェクトの要件により、C# と同様のイベントおよびデリゲート メカニズムを実装できる Java のイベント駆動メカニズムをサポートするクラス ライブラリのセットを提供する必要があります。誰もが知っているように、Java 言語自体とその標準ライブラリは、Swing には関連するクラスがありますが、イベント駆動メカニズムに関連するインターフェイスを提供しません (一般的に誰も使用しないため、標準ライブラリには属さないと思います) :) このメカニズムをサポートしてコンポーネントを実装しますが、結局のところ GUI と結合しているため、他の種類のアプリケーションで使用するには少し扱いにくく、汎用性に欠けるようです。したがって、ユニバーサル Java イベント ドリブン メカニズムのクラス ライブラリを実装し、それをユニバーサル Java アプリケーションに適用する必要がありますが、これは難しいことではありません:)
まず、C# イベント ドリブン メカニズムの記述方法を調べてみましょう。 C# で提供されるイベント キーワードを簡単に使用してイベントを定義し、イベント処理関数をイベントに追加することで (C# では、関数の参照には通常デリゲートが使用されます)、関連する処理を呼び出すことができます。イベントがトリガーされると、関数はイベント駆動型のプロセスです。例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
上記のコードは、C# で実装されたイベント駆動メカニズムの簡単な例です。これは、C# によって言語レベルで提供される利便性によるものであることがわかります。実際には CLR)。残念ながら、Java にはそのような利便性はなく、人間が実装する必要があります。次の記事では、イベント駆動型メカニズムを実装するための 2 つの方法を参考として提供します。
オブザーバー パターン
オブザーバー パターンは、一般的に使用されるデザイン パターンです。オブザーバーは最初に監視対象オブジェクト (サブジェクト) をサブスクライブします。そのため、監視対象オブジェクト (サブジェクト) で何かが変更されると、オブザーバーに通知されます。変化の。
この設計パターンは、イベント駆動型メカニズムに使用できます。イベントがトリガーされると、イベント処理関数 (デリゲート) が呼び出されることがわかります。 C#) はオブザーバーとして見ることができます。したがって、上記の機能は次のように実装できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
上記の Java コードは、単純なイベント駆動メカニズムを実装しています。原理は非常に単純で、オブザーバー パターンの典型的な適用例です。
リフレクションの使用
Java 言語は、実行時にクラスのさまざまなコンポーネント (クラス名、クラス メンバー関数、クラス属性など) を取得して操作できる強力なリフレクション関数を提供します。以下では、単純なイベント駆動メカニズムを実装するためにリフレクションを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
上記のコードは、リフレクションを使用して実装されたイベント駆動型メカニズムを示しています。リフレクション メカニズムを使用する利点は、強力なスケーラビリティがあることです。たとえば、私のイベント処理関数は EventArgs 仮パラメーターを導入できることです。イベントにはパラメーターがあり、イベントがより多くの情報を伝達できるようにします。書き換えられたイベント処理関数は次のコードに示されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
そう、C# で Winform フォームを書くときに Visual Studio が自動生成してくれるイベント処理関数 (コード中の onClick 関数) もほぼ同じ形式ですが、今回は Java で実装します。
もちろん、Java のイベント駆動機構を実装できる上記の 2 つの方法以外にも、Java の内部クラスを使用するなどの他の方法もあります。著者はいくつかのサンプル コードも書いているため、ここでは説明しません。これ以上くどくど言う必要はありません。後ほどお任せします。
以上がJava がイベント駆動型メカニズムを実装する方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。