创建2个单例Java类实例
我知道这个问题很奇怪,但我只是想知道:有没有办法在Java中创建一个单例类的多个实例
我的情况是这样的:
我有一个单例类,我需要该类的2个对象/实例。有没有办法修改类以创建多个实例
我的班级:
public class SingletonClass {
private static SingletonClass sSoleInstance;
//private constructor.
private SingletonClass(){
//Prevent form the reflection api.
if (sSoleInstance != null){
throw new RuntimeException("Use getInstance() method to get the single instance of this class.");
}
}
public static SingletonClass getInstance(){
if (sSoleInstance == null){ //if there is no instance available... create new one
sSoleInstance = new SingletonClass();
}
return sSoleInstance;
}
}
# 1 楼答案
可以使用枚举模式创建单例;像
将其转换为双单件的过程如下:
记录在案:我刚刚编造了“双单身”这个词;简单地说,从概念的角度来看,这几乎没有意义。如果您需要多个实例,那么它不是单实例;时期所以你的问题听起来更像是一个XY问题
和一个注释:考虑使用EnUM解决方案;因为默认情况下它是线程安全的;您正在使用的代码不正确。但是在做出改变之前,做一些研究来了解这些方法的利弊
# 2 楼答案
绝对有效的问题和有效的用例-简而言之,当使用静态工厂方法时,您可以有多个带有私有构造函数的类实例。通过使构造函数私有,您可以确保您的类不能从外部实例化,但与此同时,所讨论的类可以随意多次实例化自己
有关详细信息和代码示例,请查看this article。 希望有帮助