Singletonモード-Java

1124 ワード

Singletonモードの主な役割は、JavaアプリケーションでクラスClassが1つのインスタンスしか存在しないことを保証することです.
Singletonモードには通常2つの形式がある.
第1の形式(餓漢式):クラスを定義し、その構造関数はprivateであり、staticのprivateのクラス変数があり、クラスの初期化時にインスタンス化される.オブジェクトへの参照はpublic getInstanceメソッドで取得され、メソッドが呼び出されます.
public class Singleton {
    private Singleton() {
    }

    //              ,      ?
    //   ,  private,      
    private static Singleton instance = new Singleton();

    //             class     ,      
    public static Singleton getInstance() {
        return instance;
    }
}

第二の形式(怠け者):
public class Singleton {
    private Singleton() {
    }

    private static Singleton instance = null;

    public static synchronized Singleton getInstance() {
        //            ,           ,            ,     
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

適用シーン:コンピュータシステムでは、スレッドプール、キャッシュ、ログオブジェクト、ダイアログボックス、プリンタ、グラフィックスカードのドライバオブジェクトが単一の例として設計されることが多い.これらのアプリケーションは、リソースマネージャの機能を多かれ少なかれ備えています.
役割:単一のモードを選択するのは、不一致状態を回避するためです.