포스트

Singleton Design pattern #싱글톤 패턴

#싱글톤패턴 #Singleton

싱글톤 패턴이란?

싱글톤 패턴은 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Singleton {

    private static Singleton instance = new Singleton();
    
    private Singleton() {
        // 생성자는 외부에서 호출못하게 private 으로 지정해야 한다.
    }

    public static Singleton getInstance() {
        return instance;
    }

    public void say() {
        System.out.println("hi, there");
    }
}
  • 한번만 생성하므로 중복 생성에 따른 메모리 낭비 방지.
  • 이미 생성된 인스턴스를 계속 사용하므로 계속 생성하는 경우보다 속도 빠름.
  • 싱글톤 인스턴스는 전역으로 사용하는 인스턴스이므로 다른 클래스 간에 데이터 공유가 쉬움.
  • 멀티쓰레딩 환경에서 발생하는 동시성 문제를 잘 해결해야 함. 그래서 Syncronized 키워드를 사용해야 함.
  • 격리된 환경에서 테스트를 계획하고 수행하기가 어렵다. 전역적으로 어플리케이션 상태를 공유하기 때문.
  • 클라이언트가 new 키워드를 직접 사용해서 클래스 안에서 객체를 생성하므로
  • Singleton: https://tecoble.techcourse.co.kr/post/2020-11-07-singleton/
  • OCP: https://dublin-java.tistory.com/48
  • Solid: https://www.nextree.co.kr/p6960/
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.