到目前为止,我已经看到了两个单例实例。
普通单例,
public class Singleton {
private static Singleton instance;
static {
instance = new Singleton();
}
private Singleton() {
// hidden constructor
}
public static Singleton getInstance() {
return instance;
}
}
和懒惰的单例,
public class Singleton {
private Singleton() {
// hidden constructor
}
private static class Holder {
static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return Holder.INSTANCE;
}
}
编码来自this线程和this用户。我最近开始尝试学习单例,因为我以前的方法是
1.) 使用 static 来创建类似...
static MyClass instance;
2.) 我会尝试以一种看似奇怪的方式传递一个实例,
MyClass instance;
@Override
public void onEnable() { instance = this; }
// Transition to different class - - -
public OtherClass(MyClass myClass) {
this.instance = myClass;
}
最后,我的最终目标是什么?我主要使用它来将变量从我的主类传递到其他类。我目前正在尝试学习如何正确使用 File
和 FileConfiguration
,因此我想在我的类里面轻松分享它们。
如果我看起来像个初学者,请不要特意告诉我学习 Java,而是首先提供资源来帮助我解决我的问题。
最佳答案
至于何时,而不是如何:当很有可能不需要对象时,我会使用单例或任何其他对象的惰性实例化,并在需要它的可能性很高时立即实例化。一般来说,如果实例化失败,并且需要该对象,最好尽早失败。
关于java - 我什么时候应该使用惰性单例而不是普通单例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48471245/