У меня есть требование ленивой загрузки ресурсов в параллельной среде. Код для загрузки ресурсов должен выполняться только один раз.
Оба Двойная проверка блокировки (с использованием JRE 5+ и ключевого слова volatile) и Идиома инициализации по требованию , похоже, хорошо подходит для этой работы.
Просто взглянув на код, Инициализация включена. Идиома держателя требования кажется чище и эффективнее (но я предполагаю, что здесь). Мне придется позаботиться и задокументировать узор на каждом из моих синглтонов. По крайней мере, для меня было бы трудно понять, почему код был написан таким образом на месте ...
Мой вопрос: какой подход лучше? И почему? Если ваш ответ отрицательный. Как бы вы справились с этим требованием в среде Java SE?
Альтернативы
Могу ли я использовать CDI для этого, не навязывая его использование во всем моем проекте? Есть какие-нибудь статьи?