5

ですから、この状況でどのデザインパターンを使用するべきかアドバイスが欲しいです。マウスの動き、キーの押下、その他のイベントなどのユーザー入力を処理するこのオブジェクトがあります。特定のイベントに「サブスクライブ」できるようにしたい、さまざまなタイプの他のオブジェクトがたくさんあります。たとえば、オブジェクト A は「a」キーの押下をリッスンし、オブジェクト B は「b」キーの押下をリッスンする場合があります。両方のイベントは、アプリケーションでイベントを拡張できるように抽象化された 1 つの InputHandler オブジェクトから発生します。これを処理する最善の方法は何だろうと思っています。

考慮されるオプション:

  1. 実行時に特定のインスタンスに設定される InputHandler オブジェクトを各オブジェクトに与えます。ここでの明らかな短所は、イベントを受信する各オブジェクトが実行時に InputHandler を設定する必要があることです。そのため、イベントを受信する各オブジェクトを追跡する必要があります。

  2. 基本クラス EventHandler および EventHandlerFactory を作成します。ファクトリは実行時に InputHandler を設定でき、各クラスは InputHandler からのイベントをリッスンする EventHandler のインスタンスを取得できます。この選択の何が問題なのかはよくわかりませんが、最も洗練された解決策とは思えません。

どんな提案でも大歓迎です!

4

1 に答える 1