Нюансы Java разработки

Этот блог о Java разработке и в деталях описывает наиболее важные темы.

Посты с тегом «singleton»


Все что вы хотели знать о Singleton

Шаблон проектирования Singleton (Одиночка) один из самых некорректно применяемых паттернов. В этой статье мы рассмотрим несколько реализаций синглтона, которые работают корректно в многопоточной среде, при выполнении задач сериализции и клонирования и даже при рефлексивных атаках.

Для чего используется singleton Паттерн singleton используется в случаях когда существовать может ровно один экземпляр класса и он должен быть доступен через хорошо известную точку доступа или когда единственный экземпляр должен быть расширяем подклассами и клиенты должны иметь возможность использовать наследуемый экземпляр без модификации своего кода. Отличия от статических классов В JDK есть примеры использования и синглтонов и статических классов, с одной стороны java.lang.Math – final класс со статическими методами, с другой стороны java.lang.Runtime – синглтон. Преимущества singleton Если вам требуется поддерживать состояние, то синглтон больше подходит, нежели статический класс, поскольку поддержка состояния в статических классах может привести к ошибкам, особенно в конкурентном окружении, что может приводить к состоянию гонки без адекватной синхронизации параллельных модификаций различными потоками. Синглтон класс может быть «лениво» загружен, если это тяжелый объект, но у статического класса нет таких преимуществ и он всегда сразу загружается. С синглтоном вы можете использовать наследование и полиморфизм для расширения базового класса, реализовать интерфейс и предоставл Читать далее

17 ноября 2019