← Каталог
Рекомендации по разработке на Java — 11.4. Ленивая инициализация
Фрагмент из «Рекомендации по разработке на Java»: 11.4. Ленивая инициализация.
public class ReportGenerator {
private volatile ReportTemplate template;
private ReportTemplate getTemplate() {
ReportTemplate result = template;
if (result == null) {
synchronized (this) {
result = template;
if (result == null) {
template = result = loadTemplate();
}
}
}
return result;
}
private ReportTemplate loadTemplate() {
// Загрузка шаблона из файла или базы данных
return templateRepository.loadDefault();
}
} public class ReportGenerator {
private volatile ReportTemplate template;
private ReportTemplate getTemplate() {
ReportTemplate result = template;
if (result == null) {
synchronized (this) {
result = template;
if (result == null) {
template = result = loadTemplate();
}
}
}
return result;
}
private ReportTemplate loadTemplate() {
// Загрузка шаблона из файла или базы данных
return templateRepository.loadDefault();
}
}