![]() |
Почему так популярна ленивая инициализация? Вот читал очередную статью на хабре - и никак не пойму: почему все с ней так носятся? Речь о серверных приложениях. Ведь этот синглтон все равно будет проинициализирован. Все равно память будет сожрана и не возвращена. И это произойдет в самое неудобное время - во время запроса пользователя. В результате, падает предсказуемость поведения приложения. Плюс, дополнительные сложности с мультитредингом хоть и немного, но влияющие на производительность. |
а у вас как с практикой? |
нормально |
[quote=Добрых дел мастер;45109097] и немного, но влияющие на производительность. [/quote] В зависимости от реализации настолько немного, что о них можно вообще не думать. Тем более в веб приложении на спринге. |
Так а зачем это вообще делать? |
надо смотреть в каждом конкретном случае 8) когда я делал то для быстрого старта, но это был десктоп, там актуально. А сейчас я всякой хернёй занимаюсь, и если буду руками делать синглтоны в спринге то на меня странно посмотрят. |
просто все случаи, когда я видел использование ленивой инициализации, были похожи на ошибки в архитектуре. Если это какой-нибудь DTO - это выглядит, как будто я не понимаю, когда загружаются мои данные. Лучше присобачить какую-нибудь очередь и producer-consumer: и данные будут подгружаться заранее, и их количество будет управляемо. В случае с вечноживущими объектами - вообще не понимаю зачем. Лучше при старте приложения все создать - и быстрее, и безопаснее (вдруг там ошибка и оно упадет при создании). Там просто статья была про синглтоны. Но она навела на мысль, а зачем вообще этот lazy в таких количествах. |
Текущее время: 16:11. Часовой пояс GMT +3. |