facebook twitter hatena line email

「Java/デザインパターン/singleton」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==サンプルクラス== public class Singleton { // このクラスに唯一のインスタンス private static Singleton instance = new Singleton(); // new...」)
 
(相違点なし)

2015年5月20日 (水) 03:10時点における最新版

サンプルクラス

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