싱글톤

yeong ·2022년 12월 7일

보충공부!

목록 보기
3/4

Singleton(싱글톤)이란?

  • 특징 : JVM(Java Virtual Machine)내부에서 클래스를 한 개의 instance(인스턴스)으로 생성하여 사용하는 것입니다.
  • 싱글톤 클래스는 생성자가 은닉화 선언되어 new 연산자로 객체 생성 불가능합니다. - 싱글톤 클래스는 객체를 반환받아 메소드를 직접 호출하여 사용(인스턴스를 추가로 생성하지 않는다.) - 인스턴스가 오직 1개만 생성된다.
  • 장점 : 메모리 적게 사용함, 데이터 공유가 쉬움
  • 단점 : 코드 자체가 많이 필요하다. 테스트하기 어렵다. 의존 관계상 클라이언트가 구체 클래스에 의존하게 된다.

싱글톤의 클래스 구조

  • private를 붙여준 생성자
  • 인스턴스를 저장하는 정적(static) 필드를 선언하고 필드에도 static를 붙여준다.
  • 마지막으로 외부에서 호출할 수 있는 한 개의 인스턴스를 생성하기 위해 정적(static) 메서드를 생성합니다.
public class Singleton {
    // 단 1개만 존재해야 하는 객체의 인스턴스, static 으로 선언
    private static Singleton instance;

    // private 생성자로 외부에서 객체 생성을 막음
    private Singleton() {}

    // 외부에서는 getInstance() 로 instance 를 반환
    public static Singleton getInstance() {
      // instance 가 null 일 때만 생성
      if (instance == null){
          instance = new Singleton();
      }
      return instance; 
    } 
}

0개의 댓글