Looking for java Keywords? Try Ask4Keywords

Java Language Enum Singleton


пример

Java SE 5
public enum Singleton {
    INSTANCE;

    public void execute (String arg) {
        // Perform operation here 
    }
}

Enums имеют частные конструкторы, являются окончательными и обеспечивают надлежащие механизмы сериализации. Они также очень сжаты и лениво инициализированы поточно-безопасным способом.

JVM обеспечивает гарантию того, что значения перечисления не будут создаваться более одного раза каждый, что дает синтаксическому шаблону enum очень сильную защиту от атак отражения.

То, что шаблон перечисления не защищает от других разработчиков, физически добавляет больше элементов в исходный код. Следовательно, если вы выберете этот стиль реализации для своих синглетов, вам очень важно четко указать, что новые значения не должны добавляться к этим перечислениям.

Это рекомендуемый способ реализации одноэлементного шаблона, как объяснил Джошуа Блох в «Эффективной Java».