2016-04-28 1 views
1

シングルトンクラスと静的クラスの間には大きな違いがありますが、私は自分自身を納得させることができます。スタティッククラスの上でシングルトンクラスを使用する場合

誰でも私に静的とシングルトンの本当の違いを教えてもらえますか? スタティックまたは他のものではないシングルトンだけを使うべきですか?要するに

+3

をあなたは、[このスレッド]見ることができます(http://stackoverflow.com/questions/519520/difference-between-static-class-and-singleton-pattern) – ali

答えて

1

静的クラスは、いずれを有していないが、シングルトンは、(単一)インスタンスを有しています。ですから、インスタンスを渡したいとき、シングルトンを選択し、例えば:

// EventArgs.Empty is a Singleton 
    DoOnChange(myObject, EventArgs.Empty); 

あなたはすべてのインスタンスで必要を持っていないときに静的クラス使用:

public static class MyMath { 
    public static Double GammaFunc(Double value) {...} 
    ... 
    } 
+0

しかし、渡されるオブジェクトの目的に役立つ静的クラスの関数を持つことができます。つまり、外部クラスによって関数内の値が変更された場合、どこにでも影響が及ぶでしょう。@ Dmitry Bychenko –

+1

@keerti_h:これはいわゆる副作用です。または少なくとも「他の場所」) –