java - 如何多次实例化一个单例?

标签 java singleton

我的代码中需要一个单例。我用 Java 实现了它并且运行良好。我这样做的原因是为了确保在多个环境中,只有一个此类的实例。

但现在我想通过单元测试在本地测试我的 Singleton 对象。出于这个原因,我需要模拟这个 Singleton 的另一个实例(来自另一个设备的对象)。那么是否有可能出于测试目的再次实例化一个单例,还是我必须模拟它?

我不确定,但我认为可以通过使用不同的类加载器实现吗?

最佳答案

传统上,单例创建自己的实例,并且只创建一次。在这种情况下,无法创建第二个实例。

如果你使用依赖注入(inject),你可以让框架为你创建单例。单例不防范其他实例(即它有一个公共(public)构造函数),但依赖注入(inject)框架只实例化一个实例。在这种情况下,您可以创建更多实例进行测试,并且您的对象不会被单例代码弄得乱七八糟。

关于java - 如何多次实例化一个单例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3064661/

相关文章:

java - 我可以像这样实现单例模式吗?

ios - 在多个 ViewController 上共享 ARSCNView

c# - 使用 C# 在 Mysql 上出现死锁 - "Lock wait timeout exceeded; try restarting transaction"

java - 如果日期在数据库中存储为像 (132011) 这样的字符串,那么在 hibernate 中使用 to_date() 是否正确?

c# - C# 问题中的单例模式

objective-c - 在提交之前使用 Singleton 来跟踪表单数据。 . .好主意?

java - 在 WEB-INF 文件夹下包含 JSP 文件

java - 什么是单例的替代品

java - 在 Java 中将 StringBuffer 转换为字节数组

java - 知道在 Java 中是否按下热键或快捷键