设计模式 – 单身人士有什么不好?

singleton patternGoF patterns book的完全付清成员,但它最近似乎是开发者世界的孤儿.我仍然使用了很多单例,特别是对于factory classes,虽然你必须对多线程问题(实际上是任何类)有点小心,但我不明白为什么它们太可怕了.

Stack Overflow特别假设每个人都同意Singletons是邪恶的.为什么?

请用“事实,参考或特定专业知识”支持您的答案

最佳答案
从Brian Button转述:

>它们通常用作全局实例,为什么这么糟糕?因为您在代码中隐藏了应用程序的依赖关系,而不是通过接口公开它们.制作一些全球性的东西以避免传递它是code smell.
>他们违反了single responsibility principle:因为他们控制着自己的创造和生命周期.
>它们固有地导致代码紧密coupled.这使得在测试中将它们伪装成很多情况下相当困难.
>它们在应用程序的生命周期内带有状态.测试的另一个打击因为你可能最终会遇到需要订购测试的情况,这对于单元测试来说是一个很大的问题.为什么?因为每个单元测试应该独立于另一个.

转载注明原文:设计模式 – 单身人士有什么不好? - 代码日志