カリキュラムデザインパターンデザインパターン簡潔8-5シングルトンデザインパターン - 空腹中国風

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を; 
    }
}

 

おすすめ

転載: www.cnblogs.com/1446358788-qq/p/11369042.html