1

シングルトン クラスの概念は私を怒らせます。シングルトンクラスとは実際には何ですか?なぜそれが使用されるのですか? シングルトンクラスを使用する必要がある場合はありますか? 私は実際にはシングルトンクラスについてあまり知りません。「オブジェクトが一度だけ初期化されるクラスです」ということだけです。static と readOnly... ばかばかしい... シングルトン クラスの実際の概念は何ですか? シングルトンクラスを調査するときはいつでも、このコードをどこでも見ます。

public class Singleton
{
    private static Singleton instance;

    private Singleton() { }

    public static Singleton Instance
    {
        get
        {
            if (instance == null)
                instance = new Singleton();
            return instance;
        }
    }

    //instance methods
}

OOP のシングルトン クラスまたはシングルトンの概念を理解するのを手伝ってください。私を助けてください。前もって感謝します。

4

2 に答える 2

2

シングルトンパターンの考え方は、インスタンスが1つだけ存在するというものです。

使用例としては、リモートサービスを使用するためのライセンスがありますが、一度に進行中のクエリの数が限られている場合があります。シングルトンのクライアントは、サーバーへの過度の呼び出しによるライセンスへの影響を心配することなく、自由に要求を行うことができます。シングルトンは、アクションをキューに入れ、ライセンス条件が満たされていることを確認します。また、シングルトンは1つしかないため、ライセンス条項に違反することはありません。

于 2013-03-16T10:10:26.293 に答える
1

シングルトンパターンは、クラスのインスタンス化を1つのオブジェクトに制限するデザインパターンです。これは、システム全体でアクションを調整するために1つのオブジェクトが必要な場合に役立ちます。

例:クラスにintインデックスがある場合。obj3のインデックスの値を確認してください

        NonSingleton obj1 = new NonSingleton();//obj1.index = 0
        NonSingleton obj2 = new NonSingleton();//obj2.index = 0
        obj2.index = 11;
        NonSingleton obj3 = new NonSingleton();//obj3.index = 0


        Singleton obj1 = Singleton.Instance;//obj1.index = 0
        Singleton obj2 = Singleton.Instance;//obj2.index = 0
        obj2.index = 11;
        Singleton obj3 = Singleton.Instance;//obj3.index = 11

また、シングルトンを使用すると、作成された単一のインスタンスにアクセスできます。そのインスタンス(またはそのインスタンスへの参照)をパラメーターとして他のメソッドに渡し、通常のオブジェクトとして扱うことができます。

静的クラスは静的メソッドのみを許可します。

于 2013-03-16T10:17:38.867 に答える