싱글턴 패턴을 한 마디로 요약하면 객체를 오직 하나만 생성하는 패턴입니다. 해당 객체의 인스턴스를 스태틱으로 생성하고, 생성된 하나의 인스턴스를 어디에서든 참조할 수 있도록 접근하는 패턴이라 할 수 있습니다.
싱글턴 패턴 사용 이유
싱글턴 패턴을 사용하는 이유는 첫 번째, 한 번의 글로벌 인스턴스를 할당하여 메모리 낭비를 방지하기 위함입니다. 두 번째, 프로그램을 사용하는 과정에서 유일하게 참조하거나, 또는 해도 문제없는 인스턴스에 대해 접근을 쉽게 하여 자료를 조회하거나 수정할 수 있도록 지원합니다.
싱글턴 패턴 예제
C# 싱글턴 패턴 예제 소스입니다. 스태틱으로 선언한 Singleton 클래스에 대해 최초 하나의 인스턴스를 생성하고, 추후 Instance 프로퍼티로 호출 시 해당 인스턴스를 가져오도록 하는 예제입니다.
- 싱글턴 패턴을 정적으로 선언하여 static 키워드를 사용합니다.
- 인스턴스 생성 시, lock 문장으로 단독 액세스 권한을 갖도록 합니다.
public sealed class Singleton
{
private static Singleton instance = null;
private static readonly object padlock = new object();
public static Singleton Instance
{
get
{
lock (padlock)
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
public void NullToInstance()
{
lock (padlock)
{
instance = null;
}
}
}