내일배움캠프_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를 사용한다

처음 호출시에만 인스턴스가 생성되고 이후에는 이미 생성된 인스턴스를 반환하여 인스턴스가 추가 생성되지 않는다

 

싱글턴의 특징

  1. 단일 인스턴스 : 하나의 유일한 인스턴스만 가진다
  2. 전역 접근 : 어플리케이션 내에서 어디든 해당 인스턴스에만 접근할 수 있도록 한다
  3. 지연 로딩 : 인스턴스가 필요한 시점에서 생성하도록 지원
  4. 스레드 안정성 : 멀티스레드 환경에서도 안전하게 인스턴스를 생성 및 접근 가능하도록 설계