gpt4 book ai didi

java - 为什么使用单例而不是静态方法?

转载 作者:IT老高 更新时间:2023-10-28 11:38:28 24 4
gpt4 key购买 nike

对于这些关于帮助程序/实用程序类的简单问题,我从来没有找到好的答案:

  • 为什么我要创建一个单例(无状态)而不是使用静态方法?
  • 如果对象没有状态,为什么还需要对象实例?

最佳答案

通常,单例用于向应用程序引入某种全局状态。 (老实说,这通常不是真正必要的,但这是另一个话题。)

但是,在某些极端情况下,即使是 无状态 单例也是有用的:

  • 您希望在可预见的将来使用 state 扩展它。
  • 出于某些特定的技术原因,您需要一个对象实例
    示例:C# lock 或 Java 的同步对象同步语句。
  • 您需要继承,即,您希望能够使用相同的接口(interface)但使用不同的实现轻松地将您的单例替换为另一个。
    示例:Toolkit.getDefaultToolkit() Java 中的方法将返回一个单例,其确切类型取决于系统。
  • 您希望 引用相等 sentinel value .
    示例:C# 中的 DBNull.Value

关于java - 为什么使用单例而不是静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2765060/

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