[디자인 패턴] 싱글톤 패턴 (Singleton Pattern)

KangHo Lee's avatar
Nov 13, 2024
[디자인 패턴] 싱글톤 패턴 (Singleton Pattern)
💡
클래스의 인스턴스를 하나만 생성하고 그 인스턴스에 대한 전역적인 접글을 제공하는 디자인 패턴입니다.

1. 싱글톤을 적용할 클래스

public class Doorman { // main 실행 전에 실행, static에 저장되어 전역에 공유 static Doorman instance = new Doorman(); // 기본 생성자 변경 private Doorman() {} public void 쫓아내(Animal animal) { System.out.println(animal.getName()+" 쫓아내"); } }
  • 기본 생성자에 private을 걸어서 다른 곳에서 인스턴스 생성을 막습니다.
  • static으로 1개만 생성된 인스턴스를 전역에 공유합니다.
// main public class App { public static void main(String[] args) { Doorman doorman = Doorman.instance; Doorman doorman2 = Doorman.instance; // 두 객체의 주소가 같은지 확인 System.out.println(doorman.hashCode()); System.out.println(doorman2.hashCode()); Cat cat = new Cat(); Mouse mouse = new Mouse(); doorman.쫓아내(cat); doorman.쫓아내(mouse); } }
  • doorman 과 doorman2 가 참조하고 있는 주소는 동일한 메모리 주소입니다.
 
Share article

devleekangho