Java シングルトンについて

Javaのシングルトンについてです。

シングルトン

  • あるクラスのインスタンスを1つしか作成しないデザインパターンのことです。
  • コンストラクタをprivateにして外部からnewできないようにします。
  • クラスがロードされた初回に一度だけインスタンスが生成されます。
  • インスタンスはprivateのstaticのフィールドに保存します。
  • インスタンスの取得はstaticのメソッドから行います。

コード

シングルトンのサンプルです。
27,28行目で18行目のメソッドを呼び出しています。
初回のみClass1クラスのインスタンスが生成されます。

package test1;
 
/**
 * シングルトンのサンプル
 */
class Class1 {

	// インスタンスはprivateのstaticのフィールドに保存する
	// →クラスがロードされた初回に一度だけインスタンスが生成される
	private static Class1 c1 = new Class1();

    // コンストラクタをprivate宣言にする
	// →コンストラクタClass1を不可視にし、外部からnewできないようにする
    private Class1() {
    }

    // インスタンスの取得はstaticのメソッドから行う
    public static Class1 getInstance() {
        return c1;
    }
}

public class Test1 {
	public static void main(String[] args) {

	// 2回getInstanceメソッドを実行
	Class1 c1 = Class1.getInstance();
	Class1 c2 = Class1.getInstance();
	
	// 同じインスタンス
	if (c1 == c2) {
		System.out.println("同じ"); //同じ
		}
	}
	// コンパイルエラー "コンストラクタClass1()は不可視です"
	//Class1 c3 = new Class1();
}

関連の記事

Java クラスのサンプル
Java コンストラクタのサンプル
Java メンバー変数とローカル変数
Java クラス型の型変換とキャストのサンプル
Java instanceof演算子のサンプル
Java thisのサンプル
Java インターフェースのサンプル
Java abstract修飾子のサンプル
Java ポリモフィズムのサンプル
Java staticメソッドとstatic変数のサンプル




△上に戻る