프로그래밍 언어/JAVA

JAVA Singleton(싱글톤)

JinCode 2018. 11. 5. 16:43

JAVA Singleton(싱글톤)


전체 프로그램에서 단 하나의 객체만 만들도록 보장해야 하는 경우. 단 하나만 생성된다고 해서 이 객체를 싱글톤 이라고 한다.

싱글톤을 만들경우 외부에서 new 연산자로 생성자를 호출할 수 없도록 만들어야 한다.

- 생성자 앞에 private 접근 제한자를 붙여주며.

- 외부에서 호출할 수 있는 정적 메소드를 선언한다.



Singleton.class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package Singleton;
 
public class Singleton {
    
    //사진의 객체
    private static Singleton singleton = new Singleton();
    
    //생성자
    private Singleton() {};
    
    static Singleton getInstance() {
        return singleton;
    }
}
 
cs



SingletonExample.class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package Singleton;
 
public class SingletonExample {
    public static void main(String[] args) {
 
        /*
        Singleton s1 = new Singleton(); //컴파일 에러
        Singleton s2 = new Singleton(); //컴파일 에러
        */
        
        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();
        
        if (s1 == s2) {
            System.out.println("같은 객체 입니다." + "\n s1 : " + s1 + "\n s2 : " + s2);
        } else {
            System.out.println("다른 객체 입니다." + "\n s1 : " + s1 + "\n s2 : " + s2);
        }
    }
}
 
cs



결과