Programming/Design Pattern

싱글톤 패턴(Singletone Pattern)이란?

추천캐릭터 2022. 10. 29. 13:12
728x90

● 싱글톤이란 클래스의 인스턴스가 딱 한개만 생성되는 것을 보장하는 디자인 패턴이다.

 생성자의 호출이 반복적으로 이루어져도 실제론 생성되는 객체는 최초 생성된 객체를 반환한다.

public class Singletone {

    private static Singletone singletone;

    private Singletone() {}

    public static Singletone getInstance() {
        if (singletone == null) {
            singletone = new Singletone();
        }
        return singletone;
    }
}

 

위 코드는 간단한 싱글톤 예제이다.

Singleton이라는 클래스가 있고 private static을 사용하여 최초로 메모리를 한번만 할당한다.

이는 getInstance를 통해서만 생성 가능하다.

 

싱글톤 패턴 사용 시 주의할 점과 알아야할 점

 - 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 한다.

 - Private 생성자를 사용해서 외부에서 임의로 new 키워드를 사용하지 못하도록 막아야 한다.

 - 스프링 컨테이너를 사용하면 컨테이너에 등록되는 빈들을 알아서 싱글톤으로 관리된다.

 - 하나의 인스턴스를 생성해서 공유하는 형식이므로 객체의 상태를 유지하게 설계하면 안된다.

 - 특정 클라이언트에 의존적이거나 값을 변경할 수 있는 필드가 있으면 안된다.

 - 필드 대신 공유되지 않는 지역변수, 파라미터, ThreadLocal을 사용하자.

https://jpointofviewntoe.tistory.com/23

 

JAVA : Singleton(싱글톤) - 메모리 낭비 방지

안녕하세요 전진시입니당! JAVA에서 Singletone 패턴이란? 🐥 싱글톤이란 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴 이름이다. 이는 생성자의 호출이 반복적으로 이루어져

jpointofviewntoe.tistory.com

 

728x90