我的代码中需要一个单例。我用 Java 实现了它并且运行良好。我这样做的原因是为了确保在多个环境中,只有一个此类的实例。
但现在我想通过单元测试在本地测试我的 Singleton 对象。出于这个原因,我需要模拟这个 Singleton 的另一个实例(来自另一个设备的对象)。那么是否有可能出于测试目的再次实例化一个单例,还是我必须模拟它?
我不确定,但我认为可以通过使用不同的类加载器实现吗?
最佳答案
传统上,单例创建自己的实例,并且只创建一次。在这种情况下,无法创建第二个实例。
如果你使用依赖注入(inject),你可以让框架为你创建单例。单例不防范其他实例(即它有一个公共(public)构造函数),但依赖注入(inject)框架只实例化一个实例。在这种情况下,您可以创建更多实例进行测试,并且您的对象不会被单例代码弄得乱七八糟。
关于java - 如何多次实例化一个单例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3064661/