싱글톤 패턴
싱글톤 패턴
애플리케이션 전체에서 단 한개의 객체만 생성해서 사용하고 싶다면 싱글톤 패턴을 적용할 수 있다.
핵심은 생성자를 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 |