在实际应用中,辛格尔顿模式究竟在哪里使用?
我只是好奇单例模式究竟在哪里使用......我知道该模式的工作原理以及可以在何处使用,但我个人从未在任何实际应用程序中使用过。有人可以举一个可以使用的例子吗?如果有人能解释他们在实际应用中的使用方式和位置,我将不胜感激。谢谢,斯瓦蒂
我只是好奇单例模式究竟在哪里使用......我知道该模式的工作原理以及可以在何处使用,但我个人从未在任何实际应用程序中使用过。有人可以举一个可以使用的例子吗?如果有人能解释他们在实际应用中的使用方式和位置,我将不胜感激。谢谢,斯瓦蒂
通常,单例用于全局配置。最简单的例子是LogManager
- 有一个静态方法,并使用单个全局实例。LogManager.getLogManager()
事实上,这不是一个“真正的”单例,因为你可以从中派生自己的类并以这种方式创建额外的实例 - 但它通常用作单例。LogManager
另一个例子是java.lang.Runtime
- 来自文档:
每个 Java 应用程序都有一个类 Runtime 实例,该实例允许应用程序与运行应用程序的环境进行交互。可以从 getRuntime 方法获取当前运行时。
这几乎就是单例:)
现在,单例模式大多不受欢迎 - 它引入了紧密耦合,并使使用单例的东西更难测试,因为您无法轻松模拟该组件。如果你能在没有它的情况下逃脱,那就更好了。在可能的情况下注入依赖项。
一些例子: