C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でシングルトンデザインパターンを実装するにはどうすればよいですか?


シングルトンパターンは作成型パターンに属します

シングルトンデザインパターンは、特定のクラスの1つのオブジェクトのみがインスタンス化されるようにする必要がある場合に使用されます。作成されたその単一のインスタンスは、アプリケーション全体のアクションを調整する責任があります。

実装ガイドラインの一部として、クラスのすべてのコンストラクターをプライベートとして宣言することにより、クラスのインスタンスが1つだけ存在するようにする必要があります。また、シングルトンアクセスを制御するには、オブジェクトの単一インスタンスを返す静的プロパティを提供する必要があります。

封印されていると、継承されるクラスが保証され、派生クラスでオブジェクトのインスタンス化が制限されます

nullで初期化されたプライベートプロパティ

オブジェクトのインスタンスが1つだけ作成されるようにします

null条件に基づく

プライベートコンストラクターは、オブジェクトがクラス自体以外でインスタンス化されないようにします

シングルトンインスタンスを介して呼び出すことができるパブリックメソッド

public sealed class Singleton {
   private static int counter = 0;
   private static Singleton instance = null;
   public static Singleton GetInstance {
      get {
         if (instance == null)
         instance = new Singleton();
         return instance;
      }
   }
   private Singleton() {
      counter++;
      Console.WriteLine("Counter Value " + counter.ToString());
   }
   public void PrintDetails(string message) {
      Console.WriteLine(message);
   }
}
class Program {
   static void Main() {
      Singleton fromFacebook = Singleton.GetInstance;
      fromFacebook.PrintDetails("From Facebook");
      Singleton fromTwitter = Singleton.GetInstance;
      fromTwitter.PrintDetails("From Twitter");
      Console.ReadLine();
   }
}

出力

Counter Value 1
From Facebook
From Twitter

  1. C++での複合デザインパターン

    複合パターンは、オブジェクトのグループを単一のオブジェクトと同じように扱う必要がある場合に使用されます。複合パターンは、階層全体だけでなく一部を表すために、ツリー構造の観点からオブジェクトを構成します。このタイプのデザインパターンは、オブジェクトのグループのツリー構造を作成するため、構造パターンに分類されます。 このパターンは、独自のオブジェクトのグループを含むクラスを作成します。このクラスは、同じオブジェクトのグループを変更する方法を提供します。 組織の従業員階層を示す次の例を使用して、複合パターンの使用を示しています。 ここでは、コンポジットとリーフの両方のクラスがコンポーネン

  2. Pythonでパターンを印刷する方法は?

    Pythonのパターンは、ネストされたforループを使用して印刷できます。外側のループは行数を反復処理するために使用され、内側のループは列数を処理するために使用されます。印刷ステートメントは、要件に応じてさまざまなパターンを形成するように変更されます。 パターンには、星型、数字型、アルファベット型があります。パターンは、さまざまな形、三角形、ピラミッドなどにすることができます。 例 これらのパターンはすべて、これらの異なるパターンを形成する変更されたprintステートメントを含むforループを使用して印刷できます。 これらのパターンの印刷の基本的な考え方は同じですが、わずかな違いが