[개인공부] 싱글톤

Walter Mitty·2022년 10월 31일
0

개인공부

목록 보기
2/40
post-thumbnail

싱글톤 패턴

  • 단 한 개의 객체만 생성해서 사용하고 싶다면 싱글톤(Singleton) 패턴을 적용할 수 있음
  • 싱글톤 패턴의 핵심:
    • 생성자의 private 접근 제한해서 외부에서 new 연산자로 생성자를 호출할 수 없도록 막는 것이다.
//생성자의 접근 제어자를 private로!
private 클래스() {}

이 말은 즉, 생성자를 호출할 수 없으니 외부에서 마음대로 객체를 생성하는 것이 불가능해진다.
대신 싱글톤 패턴이 제공하는 정적 메소드를 통해 간접적으로 객체를 얻을 수 있다.

public class 클래스 {
	//private 접근 권한을 갖는 정적 필드 선언과 초기화
	1) private static 클래스 singleton = new 클래스();

	//private 접근 권한을 갖는 생성자 선언
	private 클래스() {}

	//public 접근 권한을 갖는 정적 메소드 선언
	2) public static 클래스 getInstance() {
		return singleton;
	}
}

1) 에서는 자신의 타입으로 정적 필드를 선언하고 미리 객체를 생성해서 초기화 시킨다.
→ 그런다음 private 접근 제한자를 붙여 외부에서 정적 필드값을 변경하지 못하도록 막는다.

2) 에서는 정적 필드값을 리턴하는 getInstance( ) 정적 메소드를 public으로 선언했다.
외부에서 객체를 얻는 유일한 방법은 getInstance( ) 메소드를 호출하는 것이다. getInstance( ) 메소드가 리턴하는 객체는 정적 필드가 참조하는 싱글톤 객체이다.

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

0개의 댓글