싱글톤이란 클래스의 인스턴스가 단 하나만 생성되는 것을 보장하는 디자인 패턴이다.
그렇기 때문에 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 한다.
public class SingletonService {
private static final SingletonService instance = new SingletonService();
public static SingletonService getInstance() {
return instance;
}
private SingletonService(){
}
public void logic(){
System.out.println("싱글톤 객체 호출");
}
}
해당 예시는 private 생성자로 외부에서 사용하지 못하도록 막았다.
객체 인스턴스가 필요하면 getInstance() 메소드를 통해서만 조회 가능하다.
void singletonServiceTest(){
SingletonService singletonService1 = SingletonService.getInstance();
SingletonService singletonService2 = SingletonService.getInstance();
System.out.println("singletonService1 = " + singletonService1);
System.out.println("singletonService2 = " + singletonService22);
//singletonService1 == singletonService2 Test
Assertions.assertThat(singletonService1).isSameAs(singletonService2);
}
싱글톤을 적용하면 요청이 올 때마다 객체를 생성하지 않고 미리 만들어진 객체를 공유해서 사용한다.
싱글톤을 사용하지 않으면 똑같은 요청마다 새로운 객체를 생성하므로 ex) 1000개의 요청시 1000개의 객체생성
메모리 낭비가 심하다.
'Programming > Node.js' 카테고리의 다른 글
Java Casting (형변환) (0) | 2022.11.30 |
---|---|
[디자인 패턴] Strategy Pattern (0) | 2022.10.25 |
[Spring] 컨테이너 빈 이름으로 조회하기 (0) | 2022.10.12 |
[JAVA] this (0) | 2022.10.11 |
[JAVA] 변수와 메서드 (1) | 2022.10.11 |
댓글