デザインパターン学習メモ:「Singleton」


このパターンの目的

GoF本より引用する。

 あるクラスに対してインスタンスが1つしか存在しないことを保証し、それにアクセスするためのグローバルな方法を提供する。

実装例

『アジャイルソフトウェア開発の奥義』(P.231)より引用する。

Singleton.java
public class Singleton
{
    private static Singleton theInstance = null;
    private Singleton() {}
    public static Singleton Instance()
    {
        if (theInstance = null)
            theInstance = new Singleton();
        return theInstance;
    }
}

利点

  • あるクラスに対して、インスタンスが1つしか存在しないことを保証する
    • システム内の一貫性を保つ
    • 無駄なインスタンス生成を行わない

参考文献

  • エリック ガンマ、ラルフ ジョンソン、リチャード ヘルム、ジョン プリシディース(1999)『オブジェクト指向における再利用のためのデザインパターン 改訂版』本位田 真一、吉田 和樹 監訳、SBクリエイティブ
  • ロバート・C・マーチン(2004)『アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技』瀬谷啓介訳、SBクリエイティブ