Я случайно натолкнулся на статью, в которой недавно обсуждался шаблон блокировки с двойной проверкой в Java и его подводные камни, и теперь мне интересно, не подвержен ли какой-либо вариант этого шаблона, который я использую в течение многих лет,
Я просмотрел много постов и статей на эту тему и понимаю потенциальные проблемы с получением ссылки на частично построенный объект, и, насколько я могу судить, я не думаю мой реализация зависит от этих вопросов. Есть ли проблемы со следующей схемой?
А если нет, то почему люди не используют его? Я никогда не видел его рекомендованным ни в одном из обсуждений, которые я видел по этому вопросу.
public class Test {
private static Test instance;
private static boolean initialized = false;
public static Test getInstance() {
if (!initialized) {
synchronized (Test.class) {
if (!initialized) {
instance = new Test();
initialized = true;
}
}
}
return instance;
}
}