我发现了一些有趣的东西,当我调试其他东西的时候,我发现它很幸运。我正在申请MVP模式,并且我在所有演示文稿中共享了一个单身控制器。带Web应用程序的单例模式,不是一个好主意!
突然间,我发现有些事件在第一次回发时被调用一次,如果有两次回发则调用两次,如果有100次回发则调用100次。
因为Singleton基于一个静态变量来保存实例,而静态变量存在于回传中,并且我连线事件,假设它将被连线一次,并为每个回发重新布线。
我想我们应该在Web应用程序中应用单例之前三思,否则我会错过什么?
感谢
MCP模式?你的意思是MVP?但是那没有控制器。或者也许MVC?但那并没有“演示文稿”。我从未听说过任何单身人士都参与其中。我认为你有点困惑。 – Aaronaught 2010-04-25 17:09:16
你的问题不是你使用了“单例”,而是你没有彻底评估你的代码的含义。理解您编写的代码,而不是将设计模式用作“邮票”并将它们翻译成语法。他们是准则,而不是邮票。 – 2010-04-25 17:09:39
我认为最初的Struts框架要求所有的控制器都可以跨请求重用。我也记得它是开发人员相当多的悲痛的原因。小心跨请求共享同一个对象(就像使用单例一样)。 – R0MANARMY 2010-04-26 03:02:12