2

イベント処理システムの設計について少しアドバイスが必要です。大まかに言えば、私のJavaサーバーはさまざまな要求を受け取り、それらを実行して(同期的および非同期的に)応答します。

フローは次のとおりです。

a)低レベルのクラスがクライアントからイベントを受信します。このクラスには、MessageRouterクラスへの参照があります。イベントを取得すると、MessageRouterでroute(Event event)を呼び出すだけです。

b)MessageRouterクラスはイベントをキューに入れ、別のスレッドでメッセージのタイプを判別し、適切なハンドラーを見つけてメッセージを渡します。

c)ハンドラーがメッセージを実行します。

d)ResponseRouterは応答を収集し、それを書き戻します。

私の質問は次のとおりです。

1)リクエストを実行するために他の4〜5種類の「マネージャー」クラスへの参照が必要なため、c)をどのように設計する必要がありますか。また、c)応答を戻すためにd)への参照が必要ですか?

2)同様に、d)は、同期および非同期で実行できるため、応答を書き戻すために他のクラスへの参照が必要です。ResponseRouterには、必要なすべてのクラスへの参照が必要ですか?

主に、イベントの実行とその応答を効率的かつエレガントな方法で配置するためのデザインパターン(またはそれらの組み合わせ)を探しています。

4

1 に答える 1

0

ハンドラーは非同期で実行できるため、Q2 への回答については、RequestRouter と ResponseRouter インターフェイスを実装する他の 2 つのオブジェクトへの参照を使用して、MessageRouter で要求と応答を処理する方が簡単であることをお勧めします。

ハンドラーが完了すると、同期または非同期の方法で MessageRouter に結果を返すことができます。

この方法では、ハンドラーは ResponseRouter への参照を必要としません。

于 2014-12-09T15:43:27.737 に答える