Singleton Design pattern #싱글톤 패턴
#싱글톤패턴 #Singleton
싱글톤 패턴이란?
싱글톤 패턴은 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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");
}
}
- 한번만 생성하므로 중복 생성에 따른 메모리 낭비 방지.
- 이미 생성된 인스턴스를 계속 사용하므로 계속 생성하는 경우보다 속도 빠름.
- 싱글톤 인스턴스는 전역으로 사용하는 인스턴스이므로 다른 클래스 간에 데이터 공유가 쉬움.
- 멀티쓰레딩 환경에서 발생하는 동시성 문제를 잘 해결해야 함. 그래서 Syncronized 키워드를 사용해야 함.
- 격리된 환경에서 테스트를 계획하고 수행하기가 어렵다. 전역적으로 어플리케이션 상태를 공유하기 때문.
- 클라이언트가 new 키워드를 직접 사용해서 클래스 안에서 객체를 생성하므로
- Singleton: https://tecoble.techcourse.co.kr/post/2020-11-07-singleton/
- OCP: https://dublin-java.tistory.com/48
- Solid: https://www.nextree.co.kr/p6960/
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.