Ste*_*a D 19 c# asp.net singleton design-patterns
因此,使用单例模式的对象只能有一个实例.这在网站上如何运作?
问题:
史蒂夫,我会尽力回答你的每一个问题:
1)对于Web开发,将对象作为Web请求的范围是很常见的(有时这也称为"每个请求上下文"或"每个http上下文"),但我们通常不将这些称为单个确切的原因.实际上,大多数IOC容器都具有开箱即用的"每个Web请求"范围以及"单例".
2)有时候Web应用程序也有真正的单例(所有请求都可以访问).如上所述,这并不完全正确,因为它将限定在应用程序池中,并且当/如果重新启动应用程序池时将被吹走.但这是用于Web应用程序的单例.正如Jigar所提到的,有时候"横切关注",例如伐木等......都是这样设置的.这些通常不会在每个Web请求中初始化,而是在global.asax中或通过依赖IOC容器为您执行此操作.您只需要确保在执行对象创建时使用其中一个标准锁定模式来防止两个线程/客户端/等等同时创建对象.这里有一个来自Microsoft的链接,但也有其他实现:http: //msdn.microsoft.com/en-us/library/ff650316.aspx 如果你使用一个流行的IOC容器,它将处理这个为你(Structuremap,Windsor,Autofac,Unity,Ninject ......和许多其他人).
你需要向你的同事询问他们所指的方法,因为两者在某些情况下都是有效的并且很常见.
| 归档时间: |
|
| 查看次数: |
10500 次 |
| 最近记录: |