[Design Pattern] 싱글톤(Singleton) 패턴



프로그램 내에서 1개의 인스턴스만 생성 하기 위해서 필요한 것이 Singleton 패턴 입니다. 프로그램의 전역에서 사용될 설정 정보 값은 Singleton 패턴을 이용해 한개만 생성해 정보를 공유 하는데도 필요합니다. 사용자가 주의해서 1개만 생성하는것이 아닌 프로그램적으로 보증하는 방법을 제공해 줍니다.


싱글톤 패턴



싱글톤 패턴을 이용해 클래스를 만들어 보고 인스턴스가 1개 이상 생성되는지 확인해 보자.


[Singleton 구현]

싱글톤 클래스의 생성자는 private로 되어 있다. 이것은 싱글톤 클래스 외부에서 생성자를 호출을 금지하기 위해서다. 해당 패턴을 이용하면 프로그래머가 실수를 해도 인스턴스가 1개만 생성되도록 보증을 해주고 있다.


public class Singleton {

private static Singleton singleton = new Singleton();

private Singleton() {

System.out.println("인스턴스를 생성했습니다.");

}

public static Singleton getInstance() {

return singleton;

}

}



[Main 구현]


public class Main {

public static void main(String[] args) {

Singleton sing1 = Singleton.getInstance();

Singleton sing2 = Singleton.getInstance();

if ( sing1 == sing2 ) {

System.out.println("같은 인스턴스 입니다.");

} else {

System.out.println("다른 인스턴스 입니다.");

}

}

}



[실행 결과]


인스턴스를 생성했습니다.

같은 인스턴스 입니다.




실행 결과와 같이 sing1, sing2에서 2번 객체를 빼왔는데 인스턴스는 단 한번만 생성 된 것을 확인 할 수 있다.




반응형

'프로그램 > Design Pattern' 카테고리의 다른 글

[디자인패턴] Factory Method 패턴  (0) 2018.06.03
[디자인패턴] Template Method 패턴  (0) 2018.06.02
[디자인패턴] Adapter 패턴  (0) 2018.06.01
[디자인패턴] Iterator  (0) 2018.05.22

+ Recent posts