0

Javaでこの状況があります:

I と呼ばれる内部モジュール。I から DBus によってメッセージを受信する大きなモジュール Z。この大きなモジュール Z は、(Dbus によって受信されたすべてのメッセージに対して) 外部サーバー E と通信します。

DBus アーキテクチャにより、リクエストが行われるたびに、Z モジュールではそれを処理するための新しい Thread が作成されます。

Eと通信するための最良のアプローチは何ですか?

a) Make a class with a method SendToExternalServer(). this method will be called every time that have a new DBus message. 
  i) The method has only one HttpUrlConnection.
  ii) The method create a differente HttpUrlConnection instance every time is called.

b) Same situation on a) but now the method SendToExternalServer() is static
  i) (same situations)
  ii) (same situations)

c) Same situation on a) but the class extends the interface Runnable
  i) (same situation)
  ii) (same situation)


d) OTHER ?

前もってありがとうジョアン

4

1 に答える 1

0

私は dbus について何も知らないので、これを一粒の塩で考えてください。

単純に単体テストのため、オプション B は選択しません。オプションA(またはC)を使用すると、「送信」されているメッセージを単に記録または記録する「MockSendToExternalServer」に切り替えることができ、単体テストはそれらのメッセージを調べることになります。

ExecutorService などの java.util.concurrent ConcurrencyUtilities を使用できるため、オプション C を強く使用する傾向があります。最初のパスの実装では、単純なシングル スレッド キュー (例: Executors.newSingleThreadedExecutor) を使用しますが、さらにスレッドが必要な場合は、それらを追加できます (例: Executors.newFixedThreadPool().

于 2012-04-18T16:09:24.413 に答える