单例模式与Web应用程序,不是一个好主意!

Ton*_*ony 2 architecture asp.net

我发现了一些有趣的东西,我在调试其他东西时运气好.我正在应用MVP模式,我制作了一个单独的控制器,可以在所有演示文稿中共享.

突然我发现有些事件在第一次回发时被调用一次,如果有两次回发则被调用两次,如果有100次回发则被调用100次.

因为Singleton基于一个静态变量来保存实例,静态变量存在于回发之间,我假设它将连接一次并为每个回发重新连接,我将事件连接起来.

我认为在Web应用程序中应用单例之前我们应该三思而后行,否则我会错过一些东西?

谢谢

ker*_*vin 10

我会在任何地方使用Singleton三思而后行.

许多人认为Singleton是一种反模式.

有些人认为它是一种反模式,判断它被过度使用,在实际上不需要类的唯一实例的情况下引入了不必要的限制,并将全局状态引入应用程序.

维基百科上有很多参考文献都在讨论这个问题.

很少需要一个单身人士,我个人认为他们与全局变量一样.


Dar*_*rov 6

由于共享状态,在多线程应用程序(不仅是单例模式)中使用静态对象时,您应该三思而后行.应该应用适当的锁定机制以同步对共享状态的访问.如果不这样做,可能会出现一些非常难以发现的错误.


and*_*gle 5

我在我的网络应用程序中使用单例已经有一段时间了,它们对我来说总是很好,所以说它们是一个坏主意真的是一个很难相信的说法。使用单例时的主要思想是将所有特定于会话的信息排除在外,并将它们更多地用于全局或应用程序数据。因为它们“不好”而避免它们真的不太聪明,因为它们在正确应用时非常有用。