gpt4 book ai didi

java - 为什么 Spring 单例范围的 bean 比经典的单例模式更好?

转载 作者:行者123 更新时间:2023-12-01 19:25:55 26 4
gpt4 key购买 nike

我确实理解Spring单例范围的bean(它们为每个Spring上下文都有一个实例)和Singleton模式(它们为类加载器有一个实例)之间的区别。

我注意到,对于许多人来说,单例模式被认为是邪恶的(因为它们就像全局引用),而似乎没有人反对单例范围的 bean(它们也是全局可用的)。这是为什么?

我有一个(桌面)应用程序,我需要对某些对象进行全局访问,因为传递对数十个类和方法的引用会非常麻烦。但是我不想使用 DI 框架,因为应用程序的启动时间很重要。最好的设计是什么?

最佳答案

public static风格的单例不受欢迎,因为它们被硬连线到一个类中,而不是因为它们是全局的。例如,人们会告诉你他们不可能被模拟来进行测试。如果您只有少量全局对象,则不需要 Spring 只是为了避免这种简单的 Java 单例。然而,如果您有一个需要连接在一起的大量对象图,那么如果您使用 DI 方法,您的代码将会变得更加清晰。

Spring 中管理 bean 生命周期有很多便利,尤其方便的是您可以相当轻松地更改生命周期,例如从单例到原型(prototype)。这样的要求可能是由于延迟决定并发执行部分代码而出现的,并且代码依赖于非线程安全对象。

关于java - 为什么 Spring 单例范围的 bean 比经典的单例模式更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19339221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com