Singleton
Singleton 개요
객체가 1개만 존재함을 보장하는 패턴, 객체에 전역적으로 접근할 수 있다.
코드
public class Singleton
{
private static Singleton instance;
public static Singleton Instance
{
get
{
if(instance==null)
{
instance = new Singleton();
}
return instance;
}
}
}
주의사항
- 전역 접근으로 인한 결합도 증가
- 싱글톤이 여러개일 경우 초기화 순서를 보장하기 어렵다.
- 기본적으로 멀티스레드에 안전하지 않다. 생성 시점에서는 DCL, 이른 초기화, Lazy등 여러 기법을 사용해야하고, 메소드 단위로 따로 스레드 안전하게 구현해야하는 경우가 있다.