본문 바로가기
Develop/Java

Singleton 싱글톤처리

by jaekk 2018. 7. 9.




1. Calcurator.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
public class Calcurator {
    
    /*
     * 싱글톤 목적 - 기능처리
     * 객체 생성을 제한 -> 외부에서 객체 생성을 하지 못하게 한다.
     * 하나의 객체만 만들어서 사용
     * 클래스에 속성을 구분하는 변수가 존재하지 않는다.
     * 클래스에 메서드만 존재
     * 
     * class AAA{
     *       ~~~~
     * }
     * 
     * new AAA();
     * new AAA();
     * new AAA();
     * new AAA();
     * new AAA();
     * new AAA();
     * 
     * 객체를 여러개 생성하면 같은 기능만 수행하는 객체만 만드는것-> 불필요
     * */
 
    // 1. 다른 패키지나 다른 클래스에서 인스턴스 생성을 막는다.
    private Calcurator() { // 클래스 내부에서만 인스턴스 생성을 하겠다.
 
    }
 
    // 2. Calcurator 인스턴스 생성
    // private : 외부 참조로 바꿀까봐
    // static: 객체 생성하지 않아도 사용할 수 있도록
    private static Calcurator c = new Calcurator();
 
    // 3. 외부에서 인스턴스를 받을 수 있는 메서드 정의
    // 프로그램 로딩될때 static 메서드 생성
    public static Calcurator getInstance() {
        return c;
    }
 
    public int add(int num1, int num2) {
        return num1 + num2;
    }
 
    public int minus(int num1, int num2) {
        return num1 - num2;
    }
}
 
cs


2. SingletomMain.java


1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.Calendar;
 
public class SingletonMain {
    public static void main(String args[]){
        Calcurator c = Calcurator.getInstance();
        
        System.out.println(c.add(1020));
        
        //Calendar 객체도 싱글톤으로 구현
        Calendar cal = Calendar.getInstance();
    }
}
 
cs



3. 실행 결과



'Develop > Java' 카테고리의 다른 글

Source not found  (0) 2018.07.16
JDBC 프로그래밍  (0) 2018.07.14
제네릭_생활코딩  (0) 2018.05.07
stack 구현하기  (0) 2018.05.06
07.이클립스 단축키  (0) 2018.03.24

댓글