decadence

個人のメモ帳

Singletonパターン

OO語る上で欠かせないであろうデザインパターンの知識を蓄えてます
javaちょっとだけやってますしGoFを分かり易くした本があるので使うしかないでしょう

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

ちょっと気になった事としてメモ

今年の5月ぐらいで研究室の方とちょい話にあがったSingleton

public class Singleton{
    private static Singleton singleton = null;

    private Singleton(){};

    public static Singleton getInstance(){
        if(singleton == null){
            singleton = new Singleton();
        }
        return singleton;
    }
}

この方法ではSingletonになっていない
マルチスレッドによりSingletonが作成された際にはgetInstance()が同時に呼ばれてしまう事がありえる.
この形で作るなら

getInstance()にsynchronizedを付けて一つずつ呼ばれるようにする.

まぁ,別の普通な方法で作るのがベストなんでしょうか

結局の所Singletonとか滅多なものじゃ無い限り作らないんですけどね.
一つしか存在しないものとか本当に限られてるって結論に達したために…

広告を非表示にする