Я случайно столкнулся с одной статьей, в которой обсуждался двойной проверенный шаблон блокировки в 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;
}
}