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

Was this helpful?