공부/Java

[Java] 싱글톤(Singleton) 패턴은 단 한 개의 객체만 생성해 사용하고 싶을 때!

ByeongJun 2023. 9. 12. 17:09
반응형

싱글톤 패턴

싱글톤은 단 하나의 객체만을 생성하게 강제하는 디자인 패턴이다. 

생성자를 private 접근 제한해 외부에서 new 연산자로 생성자를 호출 못하도록 막는 것이다.

 

외부에서 마음대로 객체를 생성 못하는 대신, 

싱글톤 패턴이 제공하는 정적 메소드를 통해 간접적으로 객체를 얻을 수 있다.

 

public class 클래스 {
  
  private static 클래스 singleton = new 클래스();     // 1.
  
  public static 클래스 getInstance() {                // 2.
    return singleton;
  }
}
  1. private 접근 제한자를 붙여 외부에서 정적 필드값을 변경하지 못하도록 막은 다음,
    정적 필드를 선언하고 미리 객체를 생성해 초기화 시킨다.
  2. 정적 필드값을 리턴하는 getInstance() 정적 메소드를 public으로 선언하였다.

 

 

 

클래스 변수1 = 클래스.getInstance();
클래스 변수2 = 클래스.getInstance();

외부에서 객체를 얻는 유일한 방법은 getInstance() 메소드를 호출하는 것인데 

리턴하는 객체는 정적 필드가 참조하는 싱글톤 객체이다. 

 

변수1과 변수2가 참조하는 객체는 동일한 객체가 된다.

 

출처 : https://www.youtube.com/watch?v=sc7R9jl8DiY

 

반응형