IT/Others

싱글톤 패턴

김 정 환 2022. 8. 27. 15:54
반응형

디자인 패턴 중 하나인 싱글톤 패턴에 대해서 알아보겠습니다. 회사에서 스프링을 사용하여서 공부를 시작했습니다. 그런데 싱글톤 패턴 개념이 나와서 정리해 두려고 합니다.

 

 

 

싱글톤 패턴 ( Singleton Pattern )

싱글톤 패턴은 인스턴스가 오직 하나만 생성되는 것을 보장하고 프로그램 어디에서든지 이 인스턴스에 접근할 수 있도록 하는 패턴입니다.

그래서 새로운 인스턴스를 만들지 않고 기존 인스턴스를 계속 사용합니다.

 

 

구현은 아래와 같습니다.

public class SingleObject {
  private static SingleObject singleObject = null;
  
  // 외부에서 직접 생성하지 못하도록 private 선언을 합니다.
  private SingleObject();
  
  // 인스턴스 1개만 생성하게 합니다.
  public static SingleObject getInstance(){
    if( singleObject == null ) {
      singleObject = new SingleObject();
    }
    
    return singleObject;
  }
}

 

외부에서 객체를 생성할 수 없도록 하기 위해서 생성자를 private으로 선언합니다. 이 의미는 객체 생성 관리를 내부적으로 하겠다는 뜻입니다. 그러면 외부에서 SingleObject 객체를 생성할 수 없습니다. 

이제 인스턴스를 가져오겠습니다. getInstance() 메서드를 이용해서 생성된 SingleObject 인스턴스를 가져올 수 있습니다. 그런데 static 제어자를 사용하고 있습니다. 왜냐하면, 생성자를 private으로 선언했기 때문에 객체를 생성할 수 없으니 static 제어자를 이용해서 인스턴스 없이 호출하기 위해서 입니다.

 

 

참고

- https://victorydntmd.tistory.com/293?category=719467 

 

 

 

끝.

반응형

'IT > Others' 카테고리의 다른 글

디자인 패턴 소개 (POSA 1)  (0) 2023.01.26
객체 지향 상속의 종류 : Subclassing 과 Subtyping  (0) 2022.11.26
전략 패턴  (0) 2022.08.13
DMA (Direct Memory Access)  (0) 2022.05.11
DBeaver 설치 및 MariaDB와 연동  (0) 2022.03.13