在Java中,我创建了一个单例类,如下所示:
public class Singleton
{
private Singleton() { print("Singleton Constructor"); }
private static Singleton pointer = new Singleton();//static here so only one object
public static Singleton makeSingleton()
{
return pointer;
}
public static void main (String args[])
{
Singleton nuReference = Singleton.makeSingleton();
if(nuReference == pointer)
{
print("Both are references for same object.");
}
}
}
这里,仅返回对已创建的 Singleton 类对象的引用。如何创建一个类,以便只允许创建该类的四个对象?我可以使用这个 Singleton 类来实现这个目的还是我必须从头开始制作它?
哦,print() 是我的自定义方法。与 System.out.println() 的工作方式相同,只是击键次数更少:)
最佳答案
这应该有效:
public class Singleton
{
private Singleton()
{
print("Constructor");
}
private static Singleton instances[] = new Singleton[4];
private static Boolean initiated = false;
public static Singleton getInstance(int index)
{
tryInitiate();
if(instances[index] == null)
{
instances[index] = new Singleton();
}
return instances[index];
}
private static Boolean tryInitiate()
{
if(initiated) return false;
for (int i = 0; i < instances.length; i++)
{
instances[i] == null;
}
initiated = true;
return true;
}
}
您还可以在启动期间实例化对象,而不是使用“null”启动对象。但这样只有需要的对象才会被实例化。
关于java - 如何扩展单例类以处理特定数量的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18062483/