gpt4 book ai didi

java - 什么时候单例类比只有静态方法的类更受欢迎?

转载 作者:行者123 更新时间:2023-11-29 09:45:33 25 4
gpt4 key购买 nike

什么时候单例类比只有静态方法和私有(private)默认构造函数的类更受欢迎?

请投票。

最佳答案

使用单例可以更好地控制初始化发生的时间。对于静态类,任何初始化都必须在类加载时进行,您几乎无法控制。例如,对静态最终成员的简单引用将触发类加载。对于单例,初始化可以简单地推迟到很久以后 - 通常,直到第一次使用。

延迟初始化的原因可能是:

  • 它很贵,而且你并不总是需要它来上课
  • 在初始化其他资源(例如,数据库连接)之前,您不能初始化。在这种情况下,延迟实例化的单例通常会在没有任何显式控制的情况下提供正确的操作顺序 - 如果在其他资源初始化之后才引用它,则一切都是免费发生的。

使用单例来提高可测试性。如果您需要为单例制作某种模拟对象(广义上)以测试其客户端,一种方法是使用一个接口(interface),并提供一个属于不同类但实现相同接口(interface)的测试单例。

使用单例也使初始化测试更容易。

当您可能需要调试初始化时使用单例。静态初始化的堆栈跟踪可能令人费解。调试也可能令人费解。如果该类提前加载,它可能会在 main() 中第一行的断点被击中之前中断。

关于java - 什么时候单例类比只有静态方法的类更受欢迎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7493559/

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