繁体   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