싱글톤 패턴

 

 

싱글톤 패턴

애플리케이션 전체에서 단 한개의 객체만 생성해서 사용하고 싶다면 싱글톤 패턴을 적용할 수 있다.

핵심은 생성자를 private으로 제한하여 외부에서 new 연산자로 생성자를 호출할 수 없도록 하는것이다.

 

객체 지향 프로그래밍에서 한 클래스에 대해 하나의 인스턴스만 생성되도록 보장하는 디자인 패턴입니다. 주로 애플리케이션에서 전역적인 리소스(예: 데이터베이스 연결, 설정 파일 등)를 관리할 때 사용됩니다.

 

생성자를 호출할 수 없으니 외부에서 마음대로 객체 생성이 불가능해진다. 

싱글톤 패턴이 제공하는 정적 메서드를 통해 간접적으로 획득이 가능하다.

 

public class Singleton {
	
    //자신의 타입으로 정적 필드를 선언하고 미리 객체를 생성해서 초기화
	//private을 통해 외부에서 정적 필드값의 변경을 방지한다.
    private static Singleton singleton = new Singleton();
    
    //private 접근 권한을 갖는 생성자 선언 
    private Singleton(){
    
    }
    
    //객체를 얻을 수 있게 public으로 선언된 정적 메서드 선언
    public static Singleton getInstance(){
    	return singleton;
    }
    
    
}

 

외부에서 객체를 얻는 유일한 방법은 getInstance()를 통해서만 가능하다.

그러므로 외부에서 사용하는 Singleton클래스의 객체는 모두 동일한 객체를 참조하게 된다.

 

Singleton var1 = Singleton.getInstance();

Singleton var2 = Singleton.getInstance();

 

두 변수가 참조하는 객체는 동일한 객체이다.

(각 변수들은 스택영역에 저장되지만, 참조하는 객체는 같은 힙영역에 있는 객체를 바라본다.)

 

Singleton var1 = new Singleton();  이런식으로 선언하면 컴파일 에러가 발생한다.

 

'Java' 카테고리의 다른 글

[JAVA] JVM 역할 및 내부구조  (1) 2025.05.08
Thread 동기화와 안전 종료  (0) 2025.03.02
[JAVA] 람다식  (0) 2024.10.26
[JAVA] 포장 클래스  (0) 2024.10.20
[JAVA] final 클래스와 final 메서드  (3) 2024.10.18

+ Recent posts