[생성 패턴] 싱글톤 패턴-스프링IOC

____·2024년 8월 3일
0

[JAVA디자인패턴]

목록 보기
1/8
post-thumbnail

싱글톤 패턴

public class Singleton {

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

    public static Singleton getInstance() {
        return instance;
    }

  	...

}

장점

  1. 메모리 절약
  2. 데이터 공유가 쉽다.

주의사항

  • 멀티스레드에서 여러 인스턴스가 나올수있다. -> 초기에 동시에 두개 요청이 접근하면..!

방안 👇🏻

1. synchronized키워드를 getInstance의 인스턴스 생성블록에 적용하고, 인스턴스변수에 volatile를 적용힌다.
2. static inner class
3. enum 
  • 클래스 개수가 아니라 인스턴스 개수가 속도에 영향을 준다.

0개의 댓글