✔️디자인패턴
프로그램을 개발할때 발생했던 문제들을 객체간의 상호작용으로 해결해나갈 수 있도록 만든 하나의 규약이다.
1. 싱글톤 패턴
하나의 클래스에서 오직 하나의 인스턴스만 가지는 패턴이다.
하나의 인스턴스를 여러 다른 모듈들이 공유하며 사용하기에 비용절감에 장점이 있다. 하지만 의존성이 높아진다는 단점이 있다.
예시)
public class SimpleSingleton {
// 유일한 인스턴스를 저장할 정적 변수
private static SimpleSingleton instance;
// private 생성자로 외부에서의 인스턴스 생성을 막음
private SimpleSingleton() {
// 초기화 코드
}
// 인스턴스를 얻는 정적 메서드
public static SimpleSingleton getInstance() {
if (instance == null) {
instance = new SimpleSingleton();
}
return instance;
}
}
사용해보기
public class Main {
public static void main(String[] args) {
// 싱글톤 인스턴스 얻기
SimpleSingleton singleton1 = SimpleSingleton.getInstance();
SimpleSingleton singleton2 = SimpleSingleton.getInstance();
// 두 인스턴스가 동일한지 확인
System.out.println(singleton1 == singleton2); // 결과: true
}
}
싱글톤의 단점 TDD(Test Driven Development) 단위 테스트를 해야할때 서로 독립적이여야만 단위 테스크가 가능한데 싱글톤 패턴은 독립적인 인스턴스를 만들기가 어렵다.
단점 극복
😉DI컨테이너
DI 컨테이너는 의존성을 주입하는 기술로, 객체 간의 의존성을 외부에서 주입함으로써 느슨한 결합을 유지합니다. 이를 통해 의존성이 감소하고 테스트 가능한 코드를 작성할 수 있습니다. 싱글톤 패턴의 단점을 극복하기 위해 DI 컨테이너를 사용하는 경우 몇 가지 이점이 있습니다
'코딩기록 저장소 🐕 > 이론공부' 카테고리의 다른 글
이론) 백엔드 (0) | 2024.01.26 |
---|---|
이론) 네트워크 (0) | 2024.01.25 |
운영 체제 (0) | 2023.12.26 |
ARM프로세서 (0) | 2023.12.21 |
패리티 비트 & 해밍 코드 (0) | 2023.12.20 |