シングルトンデザインパターンの種類と怠惰な暴漢式

単一の設計パターン・タイプと怠惰暴漢式

クラスが初期化されていない式遅延読み込み、遅延ロード。(プロフィール)

空腹中国風のクラスローダは、ロードが遅い、速い目標捕捉で初期化されます。

空腹中国風のスレッドセーフ、

怠惰な人間の必要性がそうでない場合は、安全でない、同期追加します。

第二に、飢えた男のスタイル

1つの パブリック クラスSingletonehan {
 2      プライベート 静的   Singletonehanシングルトン= 新しいSingletonehan()。
3      プライベートSingletonehan(){
 4      }
 5  パブリック 静的SingletonehanのgetInstance(){
 6          戻りシングルトン。
7  }
 8  
9      @Override
 10      パブリック文字列のtoString(){
 11          リターン "Singletonehan {}" 12      }
 13 }

テスト

1  パブリック クラスtestehan {
 2      公共 静的 ボイドメイン(文字列[]引数){
 3          Singletonehan singletonehan = Singletonehan.getInstance()。
4          のSystem.out.println(singletonehan)。
5      }
 6 }

第三に、怠惰なスタイル

1つの パブリック クラスSingletonlanhan {
 2     // プライベート静的Singletonlanhanシングルトン=新しいSingletonlanhan()。
3      プライベート 静的   Singletonlanhanシングルトン= nullを4  
5      プライベートSingletonlanhan(){
 6      }
 7  
8      パブリック 静的SingletonlanhanのgetInstance(){
 9          であれば(シングルトン== NULL ){
 10              シングルトン= 新しいSingletonlanhan()。
11          }
 12          リターンシングルトン。
13     }
 14  
15      @Override
 16      パブリック文字列のtoString(){
 17          リターン "Singletonlanhan {}" 18      }
 19 }

テスト

1つの パブリック クラスのテスト{
 2      公共 静的 ボイドメイン(文字列[]引数){
 3          Singletonlanhan singletonlanhan = Singletonlanhan.getInstance()。
4          のSystem.out.println(singletonlanhan)。
5      }
 6 }

結果

Singletonlanhan {} 

終了コードで終了プロセス 0

怠惰なサプリメントの後にプラス同期

1つの パブリック クラスSingletonlanhan {
 2     // プライベート静的Singletonlanhanシングルトン=新しいSingletonlanhan()。
3      プライベート 静的   Singletonlanhanシングルトン= nullを4  
5      プライベートSingletonlanhan(){
 6      }
 7  
8      パブリック 同期 静的SingletonlanhanのgetInstance(){
 9          であれば(シングルトン== NULL ){
 10              シングルトン= 新しいSingletonlanhan()。
11          }
 12          リターンシングルトン;
13      }
 14  
15      @Override
 16      パブリック文字列のtoString(){
 17          リターン "锁Singletonlanhan {}" 18      }
 19 }

結果

锁Singletonlanhan {} 

プロセスは、終了コードを終了 0

 

おすすめ

転載: www.cnblogs.com/fengtangjiang/p/11106102.html