Javaにおけるシングルトンクラスの実装方法と使用例


  1. 遅延初期化のシングルトン: 以下のコードは、遅延初期化を使用したシングルトンクラスの例です。

    public class Singleton {
       private static Singleton instance;
       private Singleton() {
           // インスタンスの初期化
       }
       public static synchronized Singleton getInstance() {
           if (instance == null) {
               instance = new Singleton();
           }
           return instance;
       }
    }

    インスタンスは初めてgetInstance()メソッドが呼ばれた時に生成されます。ただし、マルチスレッド環境では同期化が必要です。

  2. 初期化時にインスタンスを生成するシングルトン: 以下のコードは、クラスの初期化時にインスタンスを生成するシングルトンクラスの例です。

    public class Singleton {
       private static Singleton instance = new Singleton();
       private Singleton() {
           // インスタンスの初期化
       }
       public static Singleton getInstance() {
           return instance;
       }
    }

    インスタンスはクラスの初期化時に生成されるため、遅延初期化のような同期化は不要です。

  3. Enumを使用したシングルトン: 以下のコードは、Enumを使用してシングルトンを実装する例です。

    public enum Singleton {
       INSTANCE;
       // インスタンスのメソッドやフィールドを定義
    }

    Enumはシングルトンの特性を持つため、簡潔な実装が可能です。

シングルトンクラスの使用例:

public class SingletonExample {
    public static void main(String[] args) {
        Singleton singleton = Singleton.getInstance();
        // インスタンスを使用した処理を記述
    }
}

この例では、getInstance()メソッドを使用してシングルトンクラスのインスタンスを取得し、そのインスタンスを使用して処理を行います。

以上がJavaにおけるシングルトンクラスの実装方法と使用例です。シングルトンクラスは特定のクラスの唯一のインスタンスを保持する必要がある場合に便利なデザインパターンです。