본문 바로가기

[C#] Singleton 디자인 패턴 구현방법

I'm 영서 2023. 1. 5.
반응형

 

싱글톤 패턴의 일반적인 구성요소는 다음과 같다.

  • private 생성자
  • private static 인스턴스 객체
  • public static 객체반환 함수

이를 코드로 작성하면 다음과 같은 방식이 기본적인 클래스 구성으로 나타난다.

public sealed class Singleton
{
	private Singleton(){} // 1.private 생성자.
    private static Singleton _instance = null // 2. private static 인스턴스 객체
    public static Singleton Instance {get {
        if ( _instance == null) _instance = new Singleton();
        return _instance;
        }
    } // 3.public static 객체반환 함수

 

C# 에는 Lazy<T> 라고 하는 객체가 존재하는데 이는 접근할때 생성시켜 주는 객체로 자원 생성을 멀티쓰레드 환경에서 안전하게 해야할때 사용한다.

 

public sealed class SingletonSample 
{ 
	private static Lazy<SingletonSample> _lazy = new Lazy<SingletonSample>(() => new SingletonSample()); 
	public static SingletonSample Instance { get { return _lazy.Value; } } 
	private SingletonSample() { } 
}
반응형

댓글