싱글톤 패턴(singleton pattern)
하나의 클래스에 오직 하나의 인스턴스만 가지는 디자인 패턴 보통 데이터베이스 연결 모듈에 많이 사용
public class Singleton {
private static Singleton instance = new Singleton();
//전역 변수 'instance'는 해당 클래스 내에 유일한 인스턴스로 지정
private Singleton() {
// 생성자가 private으로 선언되어 외부에서 직접적으로 인스턴스를 생성할 수 없도록 함
//이것이 싱글톤 패턴
}
public static Singleton getInstance() {
return instance;
}
public void say() {
System.out.println("hello");
}
}
싱글톤 패턴은 애플리케이션 내에서 하나의 인스턴스만을 생성하고,
그 인스턴스에 접근할 때는 항상 동일한 인스턴스를 반환하도록 보장합니다
테스트마다 '독립적인' 인스턴스 생성이 어렵다.
미리 생성된 하나의 인스턴스을 기반으로 구현하기 때문
모듈간의 결합을 강하게 만들 수 있다.
-> 해결방안 : 의존성 주입(DI, Dependency Injection)
의존성 주입(DI, Dependency Injection)
메인모듈을 대신해 '간접'적으로 의존성을 주입한다.
메인 모듈(상위 모듈)은 하위 모듈에 대한 의존성(종속성)이 떨어진다.
== '디커플링된다'
"상위 모듈은 하위 모듈에서 어떠한 것도 가져오지 않아야 한다.
"둘 다 추상화에 의존해야 하며 추상화는 세부사항에 의존해서는 안된다."
장점
단점
참고
면접을 위한 cs 전공지식 노트