Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#에서 싱글톤 디자인 패턴을 구현하는 방법은 무엇입니까?

<시간/>

싱글톤 패턴은 생성 유형 패턴에 속합니다.

싱글톤 디자인 패턴은 특정 클래스의 하나의 객체만 인스턴스화되도록 해야 할 때 사용됩니다. 생성된 단일 인스턴스는 애플리케이션 전체에서 작업을 조정하는 역할을 합니다.

구현 지침의 일부로 클래스의 모든 생성자를 private로 선언하여 클래스의 인스턴스가 하나만 존재하도록 해야 합니다. 또한 싱글톤 액세스를 제어하려면 개체의 단일 인스턴스를 반환하는 정적 속성을 제공해야 합니다.

예시

Sealed는 상속되는 클래스를 보장하고 파생 클래스에서 개체 인스턴스화가 제한됩니다.

null로 초기화된 개인 속성

개체의 인스턴스가 하나만 생성되도록 합니다.

null 조건 기반

Private 생성자는 클래스 자체가 아닌 다른 개체가 인스턴스화되지 않도록 합니다.

싱글톤 인스턴스를 통해 호출할 수 있는 공용 메서드

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