2012-02-16 10 views
1

私はHTTPサーバーを作成しており、ヘッダーを名前でテーブルに格納しています。私はこれらを処理するための良い習慣と考えられているのだろうかと思っています。私は(リフレクションを介して)動的メソッドの呼び出しを使用し、名前で参照できる特定のヘッダーを処理するメソッドを記述することを検討しています。 OOPの観点から見てもこれはベストプラクティスではありませんが、ifステートメントを削除する際に大幅なコスト削減が可能であると感じています。思考?HTTPサーバー:if条件の代わりにJava動的メソッド呼び出し

答えて

0

反射は一般に、(... PUTGETPOST)だけ可能11のHTTPメソッドのそれぞれに対応するオブジェクトを生成するifを使用するよりも遅くなり、そうifより良いスケーリングう。
ifのラダーを使用したくない場合は、keyがHTTPメソッドで、valueがそのメソッドのHTTP要求を解析するオブジェクトであるhashmapを構築できます。

+0

私はその考え方を実際に気に入っています。ヘッダーをメソッド呼び出しにマップし、要求ごとに生成されたテーブル全体へのポインタを渡すことができます。確かに効率的です。記録のために、46の可能なヘッダーがあります(私は今のところそれらのサブセットのみをサポートしています)。助けてくれてありがとう! – user34531

+0

@ user34531私は、11個のキー、HTTPメソッド(ヘッダーではない)ごとに1つのキーで1つのテーブルを構築します。次に、それぞれの値は、それ自身のHTTPメソッド(どのヘッダがそのメソッドでサポートされているか)に関してHTTPリクエストを解析する方法を知る方法です。これにより、複雑さが少なくなります。 –

+0

ああ大丈夫、今私は理解している。明確化のためにありがとう。 – user34531

関連する問題