gpt4 book ai didi

java - 如何扩展单例类以处理特定数量的对象

转载 作者:行者123 更新时间:2023-12-01 17:21:59 25 4
gpt4 key购买 nike

在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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com