簡體   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