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

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

为什么我要创建一个单例(无状态)而不使用静态方法?

如果对象没有状态,为什么需要一个对象实例?

回答:

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

但是,在一些极端情况下,甚至 无状态 单例也可能有用:

  • 您希望在可预见的将来用状态扩展它。
  • 由于某些特定的 技术 原因,您需要一个 对象实例 。示例:C#或Java 语句的同步对象。 __

    lock``synchronized

  • 您需要继承,即您希望能够使用相同的接口但使用不同的实现轻松地用另一个替换单例。

    示例:Toolkit.getDefaultToolkit()Java中的方法将返回一个单例,其确切类型取决于系统。

  • 您想要一个哨兵值的 引用相等 。示例:在C#中。

    DBNull.Value

以上是 为什么使用单例而不是静态方法? 的全部内容, 来源链接: utcz.com/qa/406368.html

回到顶部