我发现了一些有趣的东西,我在调试其他东西时幸运地注意到了它。我正在应用 MVP 模式,并制作了一个单例控制器,以便在所有演示文稿中共享。
突然我发现有些事件在第一次回发时被调用一次,如果有两次回发,则调用两次,如果有 100 次回发,则调用 100 次。
因为 Singleton 是基于一个保存实例的静态变量,并且静态变量在回发中存在,我连接事件假设它将被连接一次,并为每个回发重新连接。
我认为在 Web 应用程序中应用单例之前我们应该三思而后行,否则我错过了什么?
谢谢
由于共享状态,在多线程应用程序(不仅仅是单例模式)中使用静态对象时,您应该三思而后行。应应用适当的锁定机制以同步对共享状态的访问。如果不这样做,可能会出现一些很难找到的错误。