Всем привет! Сегодня поговорим о самом известном шаблоне проектирования "Одиночка" (Singleton). О нем уже очень много сказано, но тем не менее - это самый популярный вопрос на собеседованиях.
Singleton - паттерн гарантирует, что класс имеет только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру.
Самый общий Singleton, которого хватает почти на 90% задач
Какие у него плюсы и минусы:
- + ленивая инициализация
- - низкая производительность
Есть более продуктивный шаблон (Double Checked Locking & volatile)
Какие у этого шаблона плюсы и минусы:
- + Ленивая инициализация
- + Высокая производительность
- - Поддерживается JDK5+
Есть еще и очень простой Singleton (Enum Singleton)
Какие у этого шаблона плюсы и минусы:
- + Сериализация из коробки
- + Потокобезопасность из коробки
- + Возможность использования EnumSet, EnumMap и т.д.
- + Поддержка switch
- - Неленивая инициализация
No comments:
Post a Comment