싱글톤 패턴은 하나의 클래스를 하나의 인스턴스만 생성하게 만들어주는 방법인데요

파일로그나, 데이터베이스 액세스, 캐싱, 공용자원등 여러분야에서 응용될 수 있습니다.

변하지 않는 값은 final static으로 선언하여 GC(Gabage Collection) 대상이 되지 않게 한다.


개발하다보면 자연스럽게 접하게 되는 싱글톤 패턴이 MSDN에 소개되어있습니다.

뭐..Best practics라고 할 수 있겠죠??


다음은 Multi Thread 환경에서도 한개의 인스턴스만 생성이 가능하도록 하는 방법을 소개합니다.



using System;

public sealed class Singleton
{
   private static volatile Singleton instance;
   private static object syncRoot = new Object();

   private Singleton() {}

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

         return instance;
      }
   }
}


설명은 생략합니다.


참조) https://msdn.microsoft.com/en-us/library/ff650316.aspx