[Java]싱글톤

재피터노트북·2022년 10월 6일
0

싱클톤?

  • 객체의 인스턴스가 오직 1개만 생성되는 패턴.

싱글톤을 왜 사용?

  • 고정된 메모리 영역을 얻으며 생성된 인스턴스를 계속 사용하기 때문에 메모리 낭비를 방지할 수 있으며, 생성된 인스턴스는 전역 인스턴스이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기가 쉽다고 한다.

사용 및 예제

package sec05.exam04;

public class Singleton {
	// 싱글톤은 static instance를 가지고 있다.
    private static Singleton singleton;
	
    // 외부에서 인스턴스 생성을 못하도록 생성자를 private
    private Singleton(){}
	
    // static method로 인스턴스를 가져온다
    // 최초에 instance가 null이면 객체를 생성해서 가지고 있는다.
    static Singleton getInstance() {
    	if (singleton == null) singleton = new Singleton();
        
        return singleton;
    }
}
package sec05.exam04;

public class SingletonExample {

    public static void main(String[] args) {

        /*
        Singleton obj1 = new Singleton();
        Singleton obj2 = new singleton();
        */

        Singleton obj1 = Singleton.getInstance();
        Singleton obj2 = Singleton.getInstance();

        if (obj1 == obj2) System.out.println("같은 싱글톤 객체입니다");
        else System.out.println("다른 싱글톤 객체입니다");
    }
}

출력

  • 같은 싱글톤 객체입니다.

참고자료 및 싱글톤의 문제점과 다른 해결 구현

profile
난 이 재 선

1개의 댓글

comment-user-thumbnail
2022년 10월 13일

싱글싱글 싱글레이디 ~

답글 달기