Очень простой синглтон.
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;
}
}
Эта версия не будет создавать экземпляр синглтона, пока вы не получите доступ к getInstance (), но из-за способа, которым JVM / classloader обрабатывает создание во внутреннем классе, вы гарантированно вызовете конструктор только один раз.