inblog logo
|
taker
    디자인패턴

    싱글톤 패턴

    김인범's avatar
    김인범
    Nov 13, 2024
    싱글톤 패턴
    Contents
    장점과 단점코드 예시참고 문헌
    특정 클래스의 인스턴스가 프로그램 내에서 오직 하나만 생성되도록 보장하는 디자인 패턴
    한정된 자원 관리나 설정 공유가 필요한 상황에서 유용하다.

    장점과 단점

    장점

    전역적 접근성 / 메모리 절약 / 동기화된 접근

    단점

    테스트가 어렵다 / 멀티스레드 문제 / 의존성 관리의 어려움
     

    코드 예시

    package ch04; public class Doorman { //static 으로 인해 메인 실행전에 Doorman을 띄워 놓을 수 있다. //private Doorman() {} //SRP -> single responsibilty principle 단일 책임 static Doorman instance = new Doorman(); private Doorman() { } public void 쫒아내(Animal animal){ System.out.println(animal.getName() + " 쫒아내"); } } ------------------------------------------------ public class App { public static void main(String[] args) { Doorman doorman = Doorman.instance; Doorman doorman2 = Doorman.instance; System.out.println(doorman.hashCode()); // response: 793589513 System.out.println(doorman2.hashCode()); // response: 793589513 Cat cat = new Cat(); Mouse mouse = new Mouse(); doorman.쫒아내(cat); doorman.쫒아내(mouse); } }
    main이 실행 될 때 doorman이 하나만 생길 수 있게 만들었다. Doorman 클래스에서 static Doorman instance = new Doorman(); 이 코드에서 static을 통해 Doorman을 나타나게 했고 private Doorman() {} 을 통해 main에서 Doorman이 new로 생성되지 못하게 막아놓아서 중복된 Doorman을 생성할 수 없게 만들었다.
    notion image
    ※ 싱글톤 패턴 , SRP 이해를 위한 그림
     

    참고 문헌

    싱글톤(Singleton) 패턴이란?
    이번 글에서는 디자인 패턴의 종류 중 하나인 싱글톤 패턴에 대해 알아보자. 싱글톤 패턴이 무엇인지, 패턴 구현 시 주의할 점은 무엇인지에 대해 알아보는 것만으로도 많은 도움이 될 것이라 생각한다. 싱글톤 패턴이란? 싱글톤(Singleton…
    https://tecoble.techcourse.co.kr/post/2020-11-07-singleton/
    싱글톤(Singleton) 패턴이란?
    Share article

    taker

    RSS·Powered by Inblog