본문 바로가기

JAVA

싱글톤 패턴

싱글톤 패턴

 - 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다.

 - 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용된다.

 

▶ 싱글톤 패턴 특징

 - 하나의 인스턴스를 생성해서 사용한다.

 - 메모리 낭비 방지한다.

 - 공통된 객체를 여러개 생성해서 사용해야하는 상황에서 많이 사용된다.

 - 꼭 필요한 경우가 아니면 지양한다.

 

▶ 싱글톤 패턴 단점

 - 전역 인스턴스이기 때문에 데이터 공유할 우려가 있다. (static 변수에 인스턴스 생성되는 경우)

 - 멀티쓰레드 환경에서 동기화 처리를 하지 않으면 인스턴스가 두개가 생성되는 경우가 발생할 수 있다.

 

▶ 싱글톤 패턴 코드

public class Singleton {
    //static 변수
    private static Singleton singleton;

    //생성자 private
    private Singleton(){ } 
     
    // Singleton 인스턴스를 얻기 위한 static 메소드
    public static Singleton getInstance() { 

        if(singleton == null)  singleton = new Singleton(); 
     
        return singleton;
    }
}