본문 바로가기
[개발] 이야기/[DotNet] 이야기

c# singleton pattern method

by 헤이나우
반응형

인스턴스를 오직 한개만 제공하는 클래스

 

스레드에 안전하지 않은 싱글톤

public static Settings getInstance()
{
    
    if (instance == null)
    {
        
        Thread.Sleep(100);
        instance = new Settings();
    }

    return instance;
}

스레드에 안전하지만 생성이 늦어질수도 있어 (안쓰는데 생성)

private static Settings instance = new Settings();

늦은 초기화 (위 두경우의 단점을 보안)

public class Singleton
{
    private static readonly Lazy<Singleton> instance =
    new Lazy<Singleton>(() => new Singleton());

    public static Singleton Instance
    {
        get
        {
            return instance.Value;
        }
    }

    private Singleton()
    {
    }
}
반응형

댓글