싱글톤(Singleton)

  • 전체 프로그램에서 단 하나의 객체만 만들도록 보장하는 경우, 단 하나만 생성한다고 해서 이 객체를 싱글톤이라고 한다
  • 클래스 외부에서 new 연산자로 생성자 호출 안되게 해야 한다
  • 호출할 수 없도록 하려면 private 접근 제한자를 붙여준다
public class Singleton {
    // 정적필드
    private static Singleton singleton = new Singleton();
    
    // 생성자
    private Singleton() {}
    
    // 정적 메서드
    static Singleton getInstance() {
        return singleton;
    }
}
public class SingletonExample{
    public static void main(String[] args) {
        
        // 컴파일 에러 2가지 모두
        Singleton obj1 = new Singleton();
        Singleton obj2 = new Singleton();
        
        // Singleton안에 있는 메서드를 객체를 만들면 리턴값인 private로 만들어진 singleton 객체만 만들어진다
        // 결국 obj1 == obj2는 객체가 같다
        // 힙영역을 공유한다 하나로
        Singleton obj1 = Singleton.getInstance();
        Singleton obj2 = Singleton.getInstance();
    }
}

태그:

카테고리:

업데이트:

댓글남기기