Singleton是反模式吗?

Sil*_*ior 2 singleton spring anti-patterns

Singleton是反模式吗?如果是,那么Spring中的依赖注入也是反模式(因为Spring提升默认的Singleton bean)?

Joa*_*uer 5

硬编码单例和使用Spring创建单例bean之间存在重要区别:后者只是配置.

因此Spring不会阻止可测试性:它是一个单独的用例,其中bean被用作单例.您可以通过在测试中手动实例化它,或者用相同接口的模拟实现替换它来轻松地使用相同的弹簧.

如果将类编码为单例,则无法在不重写的情况下轻松替换它.测试只是您可能想要替换它的一个示例.如果你意识到你需要两个不同的bean实例,那么你也会遇到硬编码的单例.