2013년 8월 2일 금요일

JAVA

"자바 디자인 패턴 입문" 이라는 책의 내용을 정리하여 올립니다.

시스템내에 단 한 개만 존재하는 것을 프로그램으로 표현시 클래스의 인스턴스를 하나만 만든다.
 지정한 클래스의 인스턴스가 하나만 존재하고 이를 프로그램 상에서 보장하는 패턴을 Singleton Pattern이라 한다.
 다수의 인스턴스가 존재하는 경우 상호간에 영향을 주어 예기치 못한 오류가 발생할 확률이 높으므로 이를 제한하는 경우에 사용



 예제의 Singleton Class는 인스턴스를 하나만 만들고 static으로 singleton이 정의되어 클래스가 메모리에 로드될때 한번 초기화 된다. 

오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의) 


생성자가 private으로 되어 있으므로 외부에서 new Singleton()을 하게되면 컴파일 시에 오류가 발생한다.Singleton 패턴의 경우 개발자가 부주의 하더라도 인스턴스는 하나만 존재


// Singleton.java
public class Singleton {
    private static Singleton singleton = new Singleton();
    private Singleton() {
        System.out.println("인스턴스 생성!");                   
    }
    public static Singleton getInstance() {       
        return singleton;
    }                                         
}


//Main.java
public class Main extends Thread {
    public static void main(String[] args) {
        System.out.println("Start.");       
    Singleton obj1 =    Singleton.getInstance();
      Singleton obj2 = Singleton.getInstance();
        if (obj1 == obj2){
System.out.println("obj1 == obj2");
        }
        else { System.out.println("obj1 != obj2");
        }
    }
}

댓글 없음:

댓글 쓰기