본문 바로가기

자바

싱글톤(Singleton)

public class Singleton {
    private static Singleton singleton = new Singleton();

    private Singleton() {

    }

    static Singleton getInstance(){
        return singleton;
    }
    
    public static void main(String[] args){
    	/*컴파일 에러: private로 생성자를 호출 못하게 했기 때문이다*/
        Singleton obj1 = new SingleTon();
        
        /*obj1과 obj2는 같은 객체이다*/
        SingleTon obj1 = Singleton.getInstance();
        SingleTon obj2 = Singleton.getInstance();
        
    }
}

 

단 하나의 객체만 만들도록 보장해야 하는 경우 SingleTon 패턴을 사용한다.

 

만드는 방법은 간단하다.

1. 클래스 외부에서 new 연산자로 생성자를 호출하지 못하게 한다.

2. 자신의 타입인 private 정적 필드를 선언, 객체 생성한다.(private이기 때문에 외부에서 수정 불가능)

3. getInstance() 정적 메소드를 선언해서 외부에서 호출할 수 있게 한다.

 

 

 

 

참고 문헌: 혼자공부하는 자바(한빛미디어)

 

 

반응형

'자바' 카테고리의 다른 글

제네릭(generic)  (0) 2022.08.26
스프링은 어떻게 property를 관리할까  (0) 2022.08.19
스프링 부트 프로파일(profile)설정  (0) 2022.08.19
다형성(polymorphism)  (0) 2022.06.24
접근제어자(Access Modifier)정리  (0) 2022.06.23