繁体   English   中英

谁可以看到我的Singleton?

[英]Who can see my Singleton?

我有一个n层应用程序。 前端是MVC站点(如果有所不同)。 MVC站点,业务逻辑和DAL都可以访问在其中定义了Singleton类的特定共享DLL。

所有这些工作正常,就好像我在DAL中为Singleton的属性Bar分配了一个“ foo”值一样,当前端访问Bar时,前端将看到“ foo”。

问题是, 还能看到Singleton吗? 如果其他用户登录到我的MVC应用程序,并且该页面的某个页面将Bar属性设置为“ Fred”。 我的第一个用户访问Bar时会看到什么。

Singleton确实是该类的唯一实例吗? 还是它是给定用户的该类的唯一实例?

如果第一个用户在同一应用程序的浏览器中打开另一个窗口怎么办? 如果他导致Bar在一个窗口中被更改,它是否在另一个窗口中被更改?

问题是,还能看到Singleton吗? 如果其他用户登录到我的MVC应用程序,并且该页面的某个页面将Bar属性设置为“ Fred”。 我的第一个用户访问Bar时会看到什么。

所有用户都看到最后一个值。 (在您的示例中为“ Fred”)

Singleton确实是该类的唯一实例吗? 还是它是给定用户的该类的唯一实例?

它是线程中该类的唯一实例。 如果您的Web应用程序在多个工作线程中运行,则您将有多个实例。

如果第一个用户在同一应用程序的浏览器中打开另一个窗口怎么办? 如果他导致Bar在一个窗口中被更改,它是否在另一个窗口中被更改?

当您谈论“ Web应用程序 ”时,术语“窗口”并不是很好。 每个窗口都是由请求创建的。 并且每个请求都可以更改您的单例对象值。

暂无
暂无

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

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