디자인 패턴 활용 시나리오 구현 예시 및 장단점 (창의적 패턴 - 싱글톤 패턴, 빌더 패턴, 프로토타입 패턴)
2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
창조 패턴
싱글톤 패턴
Java의 싱글톤 패턴 사용 시나리오는 다른 프로그래밍 언어의 사용 시나리오와 유사합니다. 주요 목적은 클래스에 인스턴스가 하나만 있는지 확인하고 전역 액세스 지점을 제공하는 것입니다. 다음은 싱글톤 패턴에 대한 몇 가지 일반적인 사용 시나리오와 자세한 설명입니다.
사용되는 장면
-
리소스 사용량 제어:
- 데이터베이스 연결 풀: 데이터베이스 연결은 비용이 많이 드는 리소스입니다. 싱글톤 모드를 사용하면 연결 풀 인스턴스가 하나만 있고, 연결 리소스를 통합 관리하고, 연결 생성 및 삭제가 반복되는 것을 방지하고, 시스템 성능을 향상시킬 수 있습니다.
- 스레드 풀: 스레드 생성 및 소멸에는 비용이 많이 듭니다. 싱글톤 모드는 스레드 풀 인스턴스가 하나만 있도록 보장하고 스레드를 중앙에서 관리하며 시스템 효율성을 향상시킬 수 있습니다.
-
글로벌 구성 관리:
- 프로필 관리: 시스템의 구성은 일반적으로 전역적입니다. 싱글톤 모드를 사용하면 구성 파일이 한 번만 로드되고 전역적으로 공유되므로 다중 로드로 인한 리소스 낭비를 피할 수 있습니다.
- 로그 관리자: 로그 시스템은 일반적으로 애플리케이션에서 전역적입니다. 싱글톤 모드는 로그 관리자 인스턴스의 고유성을 보장하고 로그 출력의 통합 관리를 용이하게 합니다.
-
현황관리:
- 캐시 관리: 일부 시스템에서는 일부 데이터를 캐시해야 합니다. 싱글톤 모드를 사용하면 캐시 관리자 인스턴스의 고유성을 보장하여 캐시 일관성과 통합 관리를 보장할 수 있습니다.
- 장치 관리: 프린터 또는 직렬 장치와 같은 일부 물리적 장치의 경우 싱글톤 모드는 장치가 동시에 여러 개체에 의해 작동되는 것을 방지하기 위해 장치 관리자의 유일한 인스턴스를 보장할 수 있습니다.
구현예(자바)
다음은 Java에서 싱글톤 패턴을 구현하는 예입니다.
Hungry 스타일 싱글턴 패턴
Hungry 스타일 싱글톤 패턴은 클래스가 로드될 때 인스턴스를 생성합니다.
public class Singleton {
private static final Singleton INSTANCE = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return INSTANCE;
}
}