Study/C#
[C#] Singleton 디자인 패턴 구현방법
I'm 영서
2023. 1. 5. 10:26
반응형
싱글톤 패턴의 일반적인 구성요소는 다음과 같다.
- 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() { }
}
반응형