Описание:
Класс, который может иметь только один экземпляр. Гарантирует, что в однопоточном приложении будет единственный экземпляр и предоставляет глобальную точку доступа к этому экземпляру.
Относится к порождающим шаблонам.
Основные минусы:
- Не рекомендуется в многопоточном приложении.
- Сложность в тестировании.
Классическая реализация:
Для Java реализация через enum:
Применение:
Для создания "тяжелых" объектов.