1. 実際の Java 同時実行性のリスト
次のようにコードをコピーします。
パブリック クラス シングルトン {
プライベート静的クラス SingletonHolder {
public static Singleton リソース = new Singleton();
}
public static Singleton getResource() {
SingletonHolder.resource を返します。
}
プライベートシングルトン(){
}
}
2. 効果的な Java
次のようにコードをコピーします。
パブリック クラス シングルトン {
public static Final Singleton INSTANCE = new Singleton();
プライベート シングルトン(){}
パブリック void メソッド(){
//...
}
public static void main(String[] a){
//メソッドを呼び出します。
Singleton.INSTANCE.method();
}
}
3. 列挙を使用して単一インスタンスを賢く作成する
次のようにコードをコピーします。
/**
* 列挙を使用して単一インスタンスを賢く作成する
*/
パブリック列挙型シングルトン {
実例;
パブリック void メソッド(){
//...
}
public static void main(String[] a){
//メソッドを呼び出します。
Singleton.INSTANCE.method();
}
}
4.ダブルロック
次のようにコードをコピーします。
パブリック クラス シングルトン {
プライベート静的揮発性シングルトン インスタンス = null;
/**
* 他人が新しいオブジェクトからアクセスできないようにする
*/
プライベートシングルトン(){
System.out.println("init");
}
パブリック静的シングルトン getInstance(){
if(インスタンス == null){
同期化(Singleton.class){
if(インスタンス == null){
インスタンス = 新しいシングルトン();
}
}
}
インスタンスを返します。
}
}