繁体   English   中英

验证类应该是静态类吗?

[英]Should validation classes be static classes?

我正在研究一个每秒可以获得数千个请求的系统,基本上我们要避免的一个任务是创建不必要的/额外的对象

我们需要验证6个请求项本身的传入请求。

我想为每个项目验证创建一个类。

但是,我试图证明我是否应该使用静态验证类vs对象与包含HttpRequest的实例作为实例字段。

我应该使用静态类或对象吗? 你会怎么做?

本质上,我正在做的是注入List<IValidator> validators来请求处理程序并迭代它。 但不确定我是否应该有一个实例与静态类。

您是否真的测量过创建新Validator实例对内存的影响与重新使用静态方法的影响? 使用短寿命对象的成本非常非常小。 您应该测量两种方法之间的差异,如果没有可测量的差异,请使用代码更清晰,更易于理解的方法。

在这种情况下,衡量差异总是有意义的,而不是仅假设一个与另一个相比更好。

在多线程环境中,使用静态类/方法始终会打开并发陷阱。 由于短期对象的创建和收集很便宜,因此创建短期对象通常比运行到cuncurrency问题和额外同步(这是昂贵的)更好。

出于类似的原因, Struts从静态请求处理程序切换到基于实例的请求处理程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM