singletonは日本語で「一枚札」という意味になる.Singletonパターンは,クラスのインスタンスが一つしか生成されないことを保証するパターンである.
たとえば現在時刻や数学関数セットなど,普遍的に世界に一つしかないものを実装するときに使う.
Singletonパターンの要素は以下一つである.
java// Singleton
class Singleton {
private static Singleton uniqueInstance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
// その他メソッド
public void print() {
System.out.println("Hello World");
}
}
// Client
public class SingletonPattern {
public static void main(String[] args) {
Singleton instance = Singleton.getInstance();
instance.print();
}
}
Singletonパターンで生成された1つのインスタンスを使いまわすことになるので,実質的にグローバル変数と変わらないことになる.つまり危険.