2012-02-16 9 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

相关问题