delpho
[Java] 싱글톤 패턴에 대해서 설명해주세요. 본문
_1.
싱글톤 패턴 = 디자인 패턴의 한 종류
디자인 패턴이 뭔데?
[ 패턴 ]
일정한 형태의 양식이나 유형
[ 디자인 패턴 ]
객체 지향 프로그래밍 설계를 할 때, 자주 발생하는 문제들을 피하기 위해 사용되는 패턴
_2.
[ 싱글톤 패턴 (Singleton parttern) ]
객체의 인스턴스가 오직 하나만 생성되는 것을 보장하고 어디서든 동일한 인스턴스에 접근할 수 있도록 하는 디자인 패턴
[ 싱글톤 패턴 예시 ]
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {
// 생성자는 외부에서 호출못하게 private 으로 지정해야 한다.
}
public static Singleton getInstance() {
return instance;
}
public void say() {
System.out.println("hi, there");
}
}
_3.
이걸 왜 쓰는건데?
[ 싱글톤 패턴 사용하는 이유 ]
1. 메모리 낭비 방지
2. 두 번째 호출부터 객체 로딩 시간 줄어들어 성능 업
_4.
단점은 없어?
[ 싱글톤 패턴의 단점 ]
1. 싱글톤 패턴을 남용하면 자원을 차지하고, GC가 자원을 회수하지 못함.
2. 멀티 스레드 환경에서 여러 스레드가 동시에 인스턴스를 호출하게되면 getInstance함수로 인해 두개 이상 생김
출처
https://zzang9ha.tistory.com/392
https://tecoble.techcourse.co.kr/post/2020-11-07-singleton/
'CS > Java' 카테고리의 다른 글
[Java] 팩토리 메서드 패턴에 대해서 설명해주세요. (0) | 2022.09.07 |
---|---|
[Java] 빌더 패턴에 대해서 설명해주세요. (0) | 2022.09.07 |