在 Web 项目中使用 Singleton 和 OnePerThread 模式的情况
我不太明白在构建 Web 应用程序时何时应该使用 Singleton 或 OnePerThread 模式。
谁能告诉我们一些什么时候我们应该知道实施这些模式的情况?
熟悉 ASP.NET MVC。
I dont quite get when I should use a Singleton or OnePerThread pattern when building a web application.
Could anyone tell us some situations of when we should know to implement these patterns?
Familiar with ASP.NET MVC.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一般来说,这不是解决问题的方法:“我应该使用什么模式”。模式应该是自然而然的。
对于网络应用程序:
每线程一个通常是请求数据,因为每个请求都由单独的线程处理 - 特定于给定请求的所有内容都在这里。示例:数据库连接。每个请求(通常)与一个数据库连接相关联。它不能在多个请求之间共享。
单例 - 这是无状态的一切,或者更正确地说--只有一个状态,并且它不依赖于当前使用该对象的线程。示例:处理付款的服务。它不存储任何状态 - 它只是调用给定一些支付参数的支付提供商。
Generally, this is not the way to approach a problem: "What patterns should I use". Patters should come naturally.
For a web-app:
one-per-thread is usually request data, because each request is handled by a separate thread - everything that needs to be specific for a given request is here. Example: A database connection. Each request is (generally) associated with one db connection. It cannot be shared among multiple requests.
singleton - this is everything that is stateless, or more properly stated - there is only one state and it does not depend on the thread currently using the object. Example: a service that processed payments. It does not store any state - it just calls the payment provider given some payment parameters.