For the complete documentation index, see llms.txt. This page is also available as Markdown.

Singleton Pattern

싱글턴 패턴(Singleton pattern)

싱글턴 패턴(Singleton pattern)

싱글턴 패턴은 인스턴스를 하나만 생성하여 사용하는 패턴이다.

개인적으로 가장 쉬우면서 흔하게 볼 수 있는 패턴이다.

정의 및 예시

어떤 게임의 설정 클래스가 있다고 하자.

public Config {
    private int volume = 10;
    private int theme = Config.DARK;
}

이 설정을 다른 클래스(캐릭터, 키보드 관리자 등)에서도 사용하고 싶다.

public Character {
    private Config config;
}

public Keyboard {
    private Config config;
}

두 클래스 CharacterKeyboard는 같은 설정을 가지고 있을까? 아니다.

이 문제는, 아래처럼 해결할 수 있다.

Config 클래스의 생성자를 직접 호출하지 못하도록 하여, 인스턴스가 한번만 생성되도록 한다. 대신 getInstace 등의 함수로 인스턴스를 가져다 쓸 수만 있도록 제한한다.

문제점

메모리에 계속 떠있다보니, 싱글톤으로 만든 인스턴스가 무거우면 문제가 된다.

Last updated