HTMLRequest
現在のプロジェクトには、、、のような複数のクラスがありSPDYRequest
ますBHIVERequest
。ネットワーク ストリームからデータを取得し、どのクラスがこのデータを処理できるかを調べたいと考えています。このために、ストリーム パケットのヘッダーを読み取り (すべてのプロトコルは同じ形式であるため、空の行 (\r\n) を取得するまで読み取ることができます)、このヘッダーを要求クラスの静的関数に渡します。この種のリクエストのヘッダーかどうかを示すブール値。ここで、実行時に (プラグインから) 特定のプロトコルをロードできるようにしたいと考えています。ヘッダーのプロトコルがあるかどうかを確認できる最善の方法は何ですか。
私の考えは次のとおりです。
Protocol
に登録されるシングルトンとしての追加のクラスはRequestFactory
、どの Protocol がこの種のヘッダーのリクエストを作成できるかを調べ、 Protocol.assembly() を呼び出す必要があります。リフレクション
Class<? extends Request>
またはClass.newInstance()
私は両方のアイデアが好きではないので、Java でこのようなことを動的に行う正しい方法は何ですか?