1コードを説明します
1.1飢えタイプは、マルチスレッドの問題が表示されません。
1.2の長所と短所
2コードのチュートリアル
2.1コードドリル1(飢餓式)
2.2コードドリル2(ブロック静的方法)
1コードを説明します
1.1飢えタイプは、マルチスレッドの問題が表示されません。
初期のロードの開始時にスレッドの同期の問題を回避するために、完了すると、
1.2の長所と短所
長所:最初のロード初期化時にスレッドの同期の問題を回避するために、完了です。
短所:クラスは、多くの場合、無駄なメモリが得られ、資源の消費を使用していない場合。
2コードのチュートリアル
2.1コードドリル1(飢餓式)
以下のためのパッケージ変更com.geely.design.pattern.creational.singleton; パブリック クラスHangrySingleton { / ** *プライベート定数、クラスがアップ割り当てられていたときに初期化を宣言。一度だけロードされた空腹の中国風のクラスの初期化。 *これは、マルチスレッドの問題は存在しません。クラスが良い初期化されるときに、それがロードされていないので、怠惰な男が、最終宣言されていません。 * / プライベート 最終静的HangrySingleton hangrySingleton = 新しい新しいHangrySingleton(); / ** *プライベートコンストラクタ宣言 * / プライベート(HangrySingleton)を{ } / ** *オブジェクト取得する外部インターフェースを提供 * @return * / パブリックHangrySingletonのgetInstance(){ 戻りhangrySingletonを; } }
2.2コードドリル2(ブロック静的方法)
以下のためのパッケージ変更com.geely.design.pattern.creational.singleton; パブリック クラスHangrySingleton { / ** *プライベート定数、クラスがアップ割り当てられていたときに初期化を宣言。一度だけロードされた空腹の中国風のクラスの初期化。 *これは、マルチスレッドの問題は存在しません。 * / プライベート 最終 静的hangrySingleton HangrySingleton、 静的{ hangrySingleton新しい新しいHangrySingleton =(); } / ** *宣言プライベートコンストラクタ * / プライベートHangrySingleton(){ } / ** *オブジェクト取得する外部インターフェース提供 * @return * / 公開getInstance hangrySingleton(){ 戻りhangrySingletonを; } }