facebook twitter hatena line email

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

提供: 初心者エンジニアの簡易メモ
2015年5月20日 (水) 03:10時点における127.0.0.1 (トーク)による版 (ページの作成:「==サンプルクラス== public class Singleton { // このクラスに唯一のインスタンス private static Singleton instance = new Singleton(); // new...」)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

サンプルクラス

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