В вопросе Что представляет собой эффективный способ реализации одноэлементного шаблона в Java? ответ с наибольшим количеством опросов говорит о том, чтобы использовать Enum для реализации singleton.
Это прекрасно, и я понимаю аргументы, соответственно, преимущества языка.
Я имею, однако, набор классов, которые я определяю singleton, но которые должны распространять другие классы, это невозможно с подходом enum, , поскольку перечисления не могут подклассы.
Джошуа Блох говорит в своих слайдах:
- Но одна вещь отсутствует - вы не можете расширить тип перечисления
- В большинстве случаев вы не должны
- Один убедительный код использования case-operation
В большинстве случаев вам не следует: может кто-то уточнить, что? Я выполнил несколько сервлетов, и они расширяют HttpServlet
, почему они не должны быть одиночными? Мне нужно только один экземпляр из них в моем приложении.