Почему enum — лучшая реализация для синглтона?

Я читал Effective Java, и там говорится, что синглтон лучше всего реализовать с помощью enum.

This approach is functionally equivalent to the public field approach, except that it is more concise, provides the serialization machinery for free, and provides an ironclad guarantee against multiple instantiation, even in the face of sophisticated serialization or reflection attacks. While this approach has yet to be widely adopted, a single-element enum type is the best way to implement a singleton.

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

Итак, почему мы должны признать enum лучшей реализацией синглтона, кроме причин, изложенных выше?

15
задан Boann 22 June 2019 в 14:11
поделиться