Implement Singleton pattern with a single-element enum

suggest change

Enum constants are instantiated when an enum is referenced for the first time. Therefore, that allows to implement Singleton software design pattern with a single-element enum.

public enum Attendant {


    private Attendant() {
        // perform some initialization routine

    public void sayHello() {
public class Main {

    public static void main(String... args) {
        Attendant.INSTANCE.sayHello();// instantiated at this point

According to “Effective Java” book by Joshua Bloch, a single-element enum is the best way to implement a singleton. This approach has following advantages:

And as shown in the section implements interface this singleton might also implement one or more interfaces.

Feedback about page:

Optional: your email if you want me to get back to you:

Table Of Contents