본문 바로가기
Development, Architecture/Design Pattern

[디자인 패턴] Singleton Pattern 싱글턴 패턴

by ggyongi 2021. 12. 1.
반응형

Singleton Pattern

Definition

싱글턴 패턴은 해당 클래스의 인스턴스가 하나만 만들어지고, 어디서든 그 인스턴스에 접근할 수 있도록 하기 위한 패턴입니다.

Source code

기본적인 구조는 아래와 같습니다.

package singleton_pattern;

public class Singleton {
    private static Singleton instance;

    public static Singleton getInstance() {
        if(instance == null) {
            instance = new Singleton();
        }
        return instance;
    }

}

하지만 이 경우, 동기화 이슈가 발생할 수 있습니다.
여러 스레드가 동시에 실행되면 인스턴스가 여러개 생성될 가능성이 있습니다.
그래서 그 해결법으로 getInstance() 메서드를 동기화 시키는 방법이 있습니다.
변화된 코드는 아래와 같습니다.

package singleton_pattern;

public class Singleton {
    private static Singleton instance;

    public static synchronized Singleton getInstance() {
        if(instance == null) {
            instance = new Singleton();
        }
        return instance;
    }

}
 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글