심심한잉여의 잡동사니

[JAVA] 디자인패턴 - 싱글톤 본문

코딩일기/Java

[JAVA] 디자인패턴 - 싱글톤

심심한잉여 2022. 3. 20. 23:41
반응형

싱글톤이란, 어떤 클래스의 인스턴스 개수가 최대 한 개를 넘지 않도록 하는 패턴

이 인스턴스는 공유자원으로서 중심의 역할을 한다.

 

장점
1. 메모리 낭비 방지 : 한번의 인스턴스 생성으로 인해 낭비방지
2. 전역 인스턴스이므로, 다른 클래스의 인스턴스에서 데이터 공유가 용이
3. 두번째 호출 시 객체 로딩시간이 줄어 성능 향상

주의점
멀티쓰레드 환경에서는 동시에 객체 생성 유무를 체크 -> 하나의 객체만 생성해야됨

 

단점
1. 싱글톤을 사용하여 여러곳에서 효과적으로 호출할 수 있어서 편하지만 결과적으로는 영향이 커져 변경 시 다른부분에서도 영향을 미치게 될 수 있음 -> 설계에 제약이 생김
2. 초기화 시점을 제어할 수 없음 -> 멀티쓰레드에서 명시적 초기화가 필요한 경우, 쓰레딩 문제를 예방하기 위해 다른 조치가 필요

public class SingleTonTest{

// 정적으로 인스턴스 생성
private static SingleTonTest instance = new SingleTonTest();

// 생성못하도록 프라이빗으로 생성자 설정
private SingleTonTest(){
}

// 싱글톤 인스턴스 리턴 메소드
public static SingleTonTest getInstance(){return instance;}

}
반응형

'코딩일기 > Java' 카테고리의 다른 글

[JAVA] 추상 클래스 VS 인터페이스  (0) 2022.03.31
[JAVA] DTO와 VO  (0) 2022.03.30
[JAVA] JAVA8 버전과 JAVA 11 버전의 특징  (0) 2022.03.15
HTTP와 HTTPS의 이해  (0) 2022.03.12
[Java]자바의 메모리 구조  (0) 2022.03.11