Design Pattern
[DP] 싱글톤 패턴
sirius
2021. 3. 19. 10:13
싱글톤 패턴(singleton pattern)
하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴
하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만, 그렇게 하지 않고 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는데 쓰이며, 보통 데이터베이스 연결 모듈에 많이 사용
class Singleton {
private static class singleInstanceHolder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return singleInstanceHolder.INSTANCE;
}
}
public class Main {
public static void main(String []args){
Singleton a = Singleton.getInstance();
Singleton b = Singleton.getInstance();
System.out.println(a.hashCode());
System.out.println(b.hashCode());
if (a == b){
System.out.println(true);
}
}
}
싱글톤 패턴의 단점
TDD 방식으로 개발할 때, 독립적이지 않으므로 단위테스트에 어려움이 있다.
모듈간의 결합을 강하게 만들 수 있다는 단점이 있다.
의존성 주입을 통해 모듈간의 결합을 낮춰야 한다.