내일배움캠프_TIL
10월 24일 TIL
skybluesky
2023. 10. 24. 21:07
싱글톤(singleton)
객체의 인스턴스가 하나만 생성되도록 제한하는 디자인 패턴
게임매니저 등의 인스턴스를 어플리케이션 내에서 하나만 생성하고 해당 인스턴스를 전역적으로 접근하는 메커니즘
싱글톤 사용 목적은 리소스 절약과 전역상태 관리에 있다
public class Singleton
{
// 인스턴스를 저장할 정적 변수
private static Singleton instance;
// 다른 클래스에서 인스턴스 생성을 막기 위한 private 생성자
private Singleton() { }
// 인스턴스에 접근하기 위한 메서드
public static Singleton GetInstance()
{
// 인스턴스가 없을 경우에만 생성
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
// 싱글턴 클래스의 다른 메서드 및 속성 정의
public void SomeMethod()
{
// 메서드 내용
}
}
Singleton 클래스를 정의하고 인스턴스를 저장할 instance를 사용한다
처음 호출시에만 인스턴스가 생성되고 이후에는 이미 생성된 인스턴스를 반환하여 인스턴스가 추가 생성되지 않는다
싱글턴의 특징
- 단일 인스턴스 : 하나의 유일한 인스턴스만 가진다
- 전역 접근 : 어플리케이션 내에서 어디든 해당 인스턴스에만 접근할 수 있도록 한다
- 지연 로딩 : 인스턴스가 필요한 시점에서 생성하도록 지원
- 스레드 안정성 : 멀티스레드 환경에서도 안전하게 인스턴스를 생성 및 접근 가능하도록 설계