2012-02-16 10 views
1

我正在編寫HTTP服務器並按名稱在表中存儲標題。我想知道處理這些問題的最佳做法。我正在考慮使用動態方法調用(通過反射)並編寫方法來處理可以按名稱引用的特定標頭。儘管從OOP的角度來看這不是最好的做法,但我覺得可能會在消除if語句方面節省大量成本,尤其是考慮到優秀的服務器應該擴展以處理大量負載。思考?HTTP服務器:Java動態方法調用作爲條件的替代

回答

0

反射通常會比只使用if以產生對象應對每個可能的11種HTTP方法(PUTGETPOST,...),所以將if比例更好慢。
如果你不想使用if的階梯,你可以構建hashmap,其中key是一些HTTP方法,value是解析該方法的HTTP請求的對象

+0

我喜歡這個想法。我可以將頭映射到方法調用,並將指針傳遞給每個請求生成的整個表。那肯定會更有效率。爲了記錄,有46個可能的標題(儘管我現在只支持它們的一個子集)。謝謝您的幫助! – user34531 2012-02-16 07:00:51

+0

@ user34531我會用11個鍵構建一個表,每個HTTP方法一個鍵(不是標題)。然後每個值都是知道如何解析HTTP請求的方法(它自己的HTTP方法(該方法支持哪些頭文件)) - 這樣將會減少複雜性。 – 2012-02-16 07:06:36

+0

好吧,現在我明白了。感謝澄清。 – user34531 2012-02-16 07:12:06

相關問題