このパターンの目的
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クリエイティブ