2011-11-30 8 views
2

私は怠惰なインスタンス化シングルトンパターン任意のシングルトンパターンの早期インスタンス化の問題

リファレンスを使用して、いくつかの問題に出くわしました。

同様に、初期インスタンス化されたシングルトンパターンを使用する際に問題がありますか?

+3

なぜ多くの人々がシングルトンパターンに興味がありますか? – duffymo

+1

@duffymo:ブログの投稿や質問が多いので、重要な印象を人々が得る –

答えて

3

これは約10年前に書かれました。 2004年以来、シンプルなシングルトンパターンはenumを1つのインスタンスで使用することです。

enum Singleton { 
    INSTANCE; 
} 
2

アイデアは、アプリケーションの起動時に、それは怠惰なinstatiationスプレッドのに対し、長い休止につながる可能性があり、それが(シングルトンの多くのために、おそらくと)早期に行われますので、もしシングルトンのインスタンスを作成することは、コストがかかるということのようですシングルトンが常に必要なわけではない場合は、遅延が発生し、完全に回避される可能性があります。

これは、かなりの数のアプリケーションで実際に問題になりますか?私はそれがそうではないと確信しています。レイジーにインスタンス化されたシングルトンについてのブログ投稿と質問の量は、その実用性に完全に比例していません。私は、この注目が、多くの人々に、これがシンプトンをどのように実装しなければならないという印象を与えていることを確信しています。そして、単純な半世話人のシングルトンが完全にうまくいった場所で不必要に複雑なソリューションを選択しました。

なぜこの問題に注目が集まるのですか?私は、部分的には、一般的な並行コードに関連するJavaメモリモデルのいくつかの細かい点と、部分的にはスマートセリエのゲームを示していると考えています。

関連する問題