単一インスタンスの実践
1303 ワード
1、内部クラス
public class Singleton {
private static class SingletonHolder {
public static Singleton singleton = new Singleton();
}
public Singleton getResource() {
return SingletonHolder.singleton;
}
private Singleton() {};
}
2、二重ロック
public class Singleton() {
private static volatile Singleton singleton = null;
private Singleton() {};
public static Singleton getSingleton() {
if( singleton != null ) {
Synchronized(Singleton.class) {
if( singleton != null ) {
singleton = new Singleton();
}
}
}
return singleton;
}
}
3、怠惰でないロード
public class Singleton() {
private static Singleton singleton = new Singleton();
private Singleton() {};
public static Singleton getSingleton() {
return singleton
}
}
4、列挙