在实际应用中,辛格尔顿模式究竟在哪里使用?

2022-08-31 17:12:05

我只是好奇单例模式究竟在哪里使用......我知道该模式的工作原理以及可以在何处使用,但我个人从未在任何实际应用程序中使用过。有人可以举一个可以使用的例子吗?如果有人能解释他们在实际应用中的使用方式和位置,我将不胜感激。谢谢,斯瓦蒂


答案 1

通常,单例用于全局配置。最简单的例子是LogManager - 有一个静态方法,并使用单个全局实例。LogManager.getLogManager()

事实上,这不是一个“真正的”单例,因为你可以从中派生自己的类并以这种方式创建额外的实例 - 但它通常用作单例。LogManager

另一个例子是java.lang.Runtime - 来自文档:

每个 Java 应用程序都有一个类 Runtime 实例,该实例允许应用程序与运行应用程序的环境进行交互。可以从 getRuntime 方法获取当前运行时。

这几乎就是单例:)

现在,单例模式大多不受欢迎 - 它引入了紧密耦合,并使使用单例的东西更难测试,因为您无法轻松模拟该组件。如果你能在没有它的情况下逃脱,那就更好了。在可能的情况下注入依赖项。


答案 2

一些例子:

  • 硬件访问
  • 数据库连接
  • 配置文件

推荐