디자인 패턴) Singleton

박우영·2023년 5월 8일
0

디자인 패턴

목록 보기
3/5
post-thumbnail

Singleton 패턴이란?


프로그램을 실행하면 보통은 많은 인스턴스가 생성됩니다. 예를들어 문자열을 나타내는 String의 경우 문자열 1개에 인스턴스가 1개씩 생성되니 사용된만큼 생성 됩니다.

하지만 인스턴스를 한개만 만들고 싶을때도 있습니다. 바로 시스템안에 1개만 존재하는것을 프로그램으로 표현하고 싶을 때 입니다. 시스템 전체를 표현한 클래스나 현재 시스템 설정을 표현한 클래스 혹은 각종 상수들을 만들때 입니다.

  • 지정한 클래스가 반드시 1개만 존재해야 한다는것을 보증하고싶을 때
  • 인스턴스가 1개만 존재한다는것을 프로그램 상에서 표현하고 싶을때

이와같이 인스턴스가 1개만 존재한다는것을 보증하는 패턴이 Singleton 패턴 입니다.

순수 Java 코드


Singleton

public class Singleton {
    private static Singleton singleton = new Singleton();

    private Singleton() {
        System.out.println("인스턴스를 생성하였습니다.");
    }

    public static Singleton getSingleton() {
        return singleton;
    }
}

Main

        /**
         * Singleton 패턴
         */
        System.out.println("Singleton");
        Singleton singleton1 = Singleton.getSingleton();
        Singleton singleton2 = Singleton.getSingleton();
        if (singleton1.equals(singleton2)) {
            System.out.println("같은 인스턴스 입니다.");
        } else {
            System.out.println("같은 인스턴스가 아닙니다.");
        }

출력 결과

다음과같이 동일한 인스턴스이고, 1번만 생성되는것을 확인할 수 있습니다.
이것에대해 좀더 자세하게 공부하기 위해선 힙과 스택 영역에 대해 공부하는 것이 좋을거같습니다.

0개의 댓글