☆ 싱글톤 패턴이란?

Singleton 패턴은 특정 클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 디자인 패턴입니다. 

이 패턴은 전역 접근을 제공하며, 여러 스레드에서 안전하게 사용할 수 있도록 구현할 수 있습니다.

--> 공유(접근)해야 될 데이터나 클래스로서 어디서나(클래스) 접근이 용이하도록 만든 패턴.

 

기본 구조 - 코드 예시

public class Singleton {
    // 클래스의 유일한 인스턴스를 저장할 정적 변수
    private static Singleton single = null;
    
    // 전달(이용)하고자 하는 변수 or 객체를 멤버로 가짐
    int number;
    List<Integer> list;
    
    // 생성자를 private으로 선언하여 외부에서 인스턴스를 생성할 수 없도록 함
    private Singleton() {}

    // 인스턴스를 반환하는 정적 메서드
    public static Singleton getInstance() {
        if (single == null) {
            single = new Singleton();
        }
        return single;
    }
}

 

☆ 코드 설명

1. Singleton 패턴에서 사용되는 Static의 맥락:

static으로 선언된 변수는 클래스의 인스턴스와 관계없이 클래스에 속하는 변수.

즉, 클래스가 로드될 때 메모리에 할당되며, 그 값이 null이라 하더라도 인스턴스를 생성하지 않고도 접근이 가능

 

2. getInstance() 메소드

if문이 딱 한 번만 실행된다는 것이 포인트임.

- single 변수를 null로 초기화했기 때문에 메소드가 최초 1회 실행될 때 if문이 실행됨

- 이 때 메모리 주소가 할당됨

- 한 번 메모리 주소가 할당된 이후로부터는, if문이 실행되지 않음

- 바뀌지 않는 메모리 주소를 리턴해줌

+ Recent posts