Event-Delegation Model
と の相違点を探してみましたEvent-Inheritance Model
が、両者を区別するのに十分な具体的な答えは見つかりませんでした。
これら 2 つのモデルの実際の違いは何ですか? また、どのような場合に効果的なソリューションと見なされるのでしょうか?
Event-Delegation Model
と の相違点を探してみましたEvent-Inheritance Model
が、両者を区別するのに十分な具体的な答えは見つかりませんでした。
これら 2 つのモデルの実際の違いは何ですか? また、どのような場合に効果的なソリューションと見なされるのでしょうか?
私が理解している限り、イベント継承モデルでは、イニシエーターがすべてのメッセージをすべてのオブザーバーに送信します。オブザーバーは、どのメッセージが適用されるかを決定する責任があります。このモデルの利点は、複数のオブザーバーが同じメッセージを処理できることです。このモデルの欠点は、多数のイニシエーターとオブザーバーがあるとすぐに複雑になることです。
イベント委任モデルでは、オブザーバーがイニシエーターに登録する必要があります。イニシエーターに登録方法が 1 つしかない場合、これはイベント継承モデルに似ています。イニシエーターに複数の登録方法がある場合、イニシエーターは、メッセージを必要とするオブザーバーだけにメッセージを送信できます。イベント委任モデルは、多数のイニシエーターと多数のオブザーバーがある場合に、より適切にスケーリングされます。
イベント委任モデルには、イベント継承モデルよりも 2 つの利点があります。
イベントまたはそのコンテナーによって生成されたオブジェクト以外のオブジェクトを処理することにより、イベント処理を可能にします。コンポーネントの設計とその使用法を明確に分離します。
より多くのイベントが生成されるアプリケーションでは、パフォーマンスが大幅に向上します。このモデルは、イベント継承モデルの場合のように、未処理のイベントを繰り返し処理する必要がないという事実のためです。