inblog logo
|
maestrojava
    design pattern

    4. 싱글톤 패턴 (Singleton Pattern)

    서주홍's avatar
    서주홍
    Aug 14, 2024
    4. 싱글톤 패턴 (Singleton Pattern)
    Contents
    ■ 1. 싱글톤 패턴의 주요 개념■ 2. 싱글톤 패턴 구현 방법1■ 3. 싱글톤 패턴 구현 방법2
    💡
    싱글톤 패턴(Singleton Pattern)은 객체를 단 하나만 생성하고, 그 생성된 객체를 어디서든지 접근할 수 있도록 보장하는 디자인 패턴입니다. 이는 메모리 절약과 글로벌한 접근점을 제공하는 데 유용합니다.

    ■ 1. 싱글톤 패턴의 주요 개념

    • Private 생성자
      • 객체 생성을 막기 위해 생성자를 private으로 선언합니다.
      • 이렇게 하면 외부에서 new 키워드를 통해 객체를 생성할 수 없습니다.
      •  
    • Static 인스턴스
      • 클래스 내에서 자기 자신을 참조하는 static 변수를 선언합니다.
      • 이 변수는 클래스가 메모리에 로드될 때 한 번만 생성됩니다.
      •  
    • Public 접근 메서드
      • 외부에서 인스턴스에 접근할 수 있도록 public 메서드를 제공합니다.
      • 이 메서드를 통해 static으로 선언된 유일한 인스턴스를 반환받습니다.
     

    ■ 2. 싱글톤 패턴 구현 방법1

    💡
    getInstance() 메서드를 통한 싱글톤 패턴
    • 싱글톤 인스턴스 생성 및 관리
      • 클래스 내에 private static으로 인스턴스를 선언하고 초기화합니다.
      • 이 인스턴스는 클래스가 로드될 때 한 번만 생성됩니다.
    • getInstance() 메서드를 통한 접근
      • public static 메서드인 getInstance()를 통해 외부에서 인스턴스를 가져옵니다.
      • 이 메서드는 클래스 외부에서 생성자에 직접 접근할 수 없으므로,
      • getInstance()를 통해 유일한 인스턴스를 반환합니다.
     
    public class Doorman { private static Doorman doorman = new Doorman(); private Doorman() {} public static Doorman getInstance() { return doorman; } public void 쫓아내(Animal a) { System.out.println(a.getName() + " 쫓아내"); } }
    • 설명
      • getInstance() 메서드를 통해 항상 동일한 Doorman 객체를 반환받아 사용하게 됩니다.
     
     

    ■ 3. 싱글톤 패턴 구현 방법2

    💡
    public static 인스턴스 필드를 통한 싱글톤 패턴
    • 인스턴스를 public static으로 선언
      • 클래스 내부에서 public static으로 인스턴스를 직접 선언하고 초기화합니다.
      • 외부에서 클래스명을 통해 직접 인스턴스에 접근할 수 있도록 합니다.
    • 생성자 접근 차단
      • 생성자는 private으로 선언하여, 외부에서 추가 인스턴스를 생성하지 못하도록 막습니다.
     
    public class Doorman { public static Doorman instance = new Doorman(); private Doorman() {} public void 쫓아내(Animal a) { System.out.println(a.getName() + " 쫓아내"); } }
    • 설명
      • Doorman.instance로 직접 접근하여 사용할 수 있으며, 코드가 더 단순해집니다.
     
    Share article

    maestrojava

    RSS·Powered by Inblog