На самом деле мне может показаться, что в этом есть некоторое преимущество: если вы используете enum с конструктором для управления статической ссылкой, он будет инициализирован при запуске (как при загрузке класса) и никогда не сможет измениться после этого.
Это может быть полезным для разделения классов permgen, которые могут улучшить горячее развертывание в контейнерах, где это является проблемой.Однако я понятия не имею, так ли это на самом деле.
С отрицательной стороны вы можете потерять управление жизненным циклом статической ссылки, если enum выполняет инициализацию.
Лучшее решение состоит в том, чтобыкак правило, избегайте статических синглетов, подобных этому, и полагайтесь на внедрение зависимостей или AOP (@Configurable от Google Spring).