facebook twitter hatena line google mixi email

Java/デザインパターン/singleton

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

サンプルクラス

public class Singleton {
  // このクラスに唯一のインスタンス
  private static Singleton instance = new Singleton();
  // newでのインスタンス生成防止
  private Singleton() {}
  // インスタンス取得メソッド
  public static Singleton getInstance() {
    return instance;
  }
}

NG

以下記述はマルチスレッド時にインスタンスを1つにすることを保証しない。

参考 http://www.atmarkit.co.jp/fjava/javatips/075java007.html

public class Singleton {
  // このクラスに唯一のインスタンス
  private static Singleton instance;
  // newでのインスタンス生成防止
  private Singleton() {
    instance = null;
  }
  // インスタンス取得メソッド
  public static Singleton getInstance() {
    if (instance == null) {
      instance  = new Singleton();
    }
    return instance;
  }
}