簡體   English   中英

為什么Spring和Struts MVC為其控制器類實現單例模式?

[英]Why Spring and Struts MVC implement singleton pattern for their controller classes?

由於單例模式用於有狀態對象,並且MVC中的servlet請求/響應通常由無狀態對象(控制器類)管理,為什么它們僅使用單例模式?

如GoF的《 設計模式》一書中所述,單例模式旨在應用於無狀態對象。 在應用程序中只有一個Singleton實例,其所有客戶端共享同一實例,然后共享同一狀態。 在大多數情況下,這不是對象應具有的行為。 但是, 無狀態 狀態不是Singleton功能。 您的設計必須確定Singleton是否應具有狀態。

說到Spring和Struts控制器,恕我直言,將它們建模為Singleton是正確的。 這些對象應該沒有狀態,並且如果它們具有某些屬性,它們通常是服務類,也就是Singleton。

最后,控制器的構建過程需要一定的成本。 因此出於性能原因,它們也被實現為Singleton類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM