关闭。这个问题需要更多focused.它目前不接受答案。想要改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭5年前。Improvethisquestion不确定使用严格的全局状态实现是否会失败。什么时候单例不适合应用程序? 最佳答案 如果您正在进行单元测试,单例通常是个坏主意,不进行单元测试(或BDD或验收测试)通常是个坏主意。使对象具有全局状态意味着您编写的涉及这些对象的单元测试将相互隔离和脱节。相反,您将不得不担心为每个测试重置状态,相信我……这永远不会100%完成。如果您不重置全局状态,那么您会
关闭。这个问题需要更多focused.它目前不接受答案。想要改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭5年前。Improvethisquestion不确定使用严格的全局状态实现是否会失败。什么时候单例不适合应用程序? 最佳答案 如果您正在进行单元测试,单例通常是个坏主意,不进行单元测试(或BDD或验收测试)通常是个坏主意。使对象具有全局状态意味着您编写的涉及这些对象的单元测试将相互隔离和脱节。相反,您将不得不担心为每个测试重置状态,相信我……这永远不会100%完成。如果您不重置全局状态,那么您会
我们的遗留应用程序受制于一个可怕的框架(好吧,我会说出名字,它是Tapestry4),该框架涉及荒谬数量的EventListeners(约100,000个)用于最简单的操作。我猜这超出了javax.swing.event.EventListenerList原本打算处理的范围,在这个不幸的用例中,它给我们带来了一些令人讨厌的性能问题。我花了几个小时来完成下面基于HashMap/ArrayList的相当幼稚的替换,它几乎在所有方面都快得多:添加50,000个听众:EventListenerList>2秒EventListenerMap~3.5毫秒向50,000名听众触发事件:EventLi