このイディオムがアンチパターンであると主張する共通の信念と複数の情報源 ( wikiを含む) があります。
正しい実装が使用されている場合 (たとえば、volatileを使用) 、製品コードでそれを使用することに反対する引数は何ですか?
マルチスレッド環境で遅延初期化を実装するための適切な代替手段は何ですか? メソッド全体をロックすることはボトルネックになる可能性があり、最新の同期は比較的安価ですが、特に競合下では依然としてはるかに遅くなります。静的ホルダーは、言語固有で少し醜いハックのようです (少なくとも私にとっては)。Atomics ベースの実装は、従来の DCL とそれほど変わらないように見えますが、複数の計算が可能であったり、より複雑なコードが必要になったりします。たとえば、Scala はまだ遅延値を実装するために DCL を使用していますが、提案されている代替案ははるかに複雑に見えます。