[디자인 패턴] 7. 싱글톤 패턴

lhs's avatar
Nov 13, 2024
[디자인 패턴] 7. 싱글톤 패턴
💡
싱글톤패턴은 객체가 전역적으로 하나만 존재하도록 하는 기법이다.
 

1. 정의

싱글톤 패턴(Singleton Pattern)은 생성 패턴(Creational Pattern)중 하나로, 생성된 인스턴스가 오직 하나만 존재하도록 보장하고, 이 인스턴스에 대한 전역적인 접근을 제공하는 디자인 패턴이다. 즉, 클래스의 인스턴스가 애플리케이션 내에서 하나만 생성되도록 하여, 그 인스턴스를 어디서든 동일하게 접근할 수 있게 만든다.

2. 예제 코드

public class Doorman { static Doorman instance = new Doorman(); private Doorman() {} // DIP -> Dependency Inversion Principle public void 쫓아내(Animal animal) { System.out.println(animal.getName() + "쫒아내"); } }
Doorman.java
 
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()); Animal cat = new Cat(); Animal mouse = new Mouse(); doorman.쫓아내(cat); doorman.쫓아내(mouse); } }
App.java

3. 정리

  • Doorman 클래스
    • static Doorman instance = new Doorman();를 통해 Doorman 클래스의 유일한 인스턴스를 생성한다.
    • private Doorman() 생성자를 private으로 설정하여 외부에서 Doorman 객체를 직접 생성할 수 없게 막는다.
  • App 클래스
    • doormandoorman2Doorman.instance를 통해 Doorman의 유일한 인스턴스에 접근한다.
    • hashCode() 메서드를 활용하여 두 객체가 동일한 인스턴스를 참조하는지 확인할 수 있다.
    • 793589513 793589513 고양이쫒아내 쥐쫒아내
 
Share article

LHS's Study Space