Singleton Pattern 은 Manager 또는 Service 같은 관리하는 클래스
즉, 두개 이상 만들면 안되거나, 만들 필요를 느끼지 못할 때 사용한다.
1. 생성자를 private으로 선언해서 접근이 불가하게 만든다.
2. 클래스를 인스턴스로 생성한다.
3. getInstance라는 static 메소드를 만들어서 , 이 곳을 통해서만 객체를 넘겨준다.
ㄴ 이때, 생성된 객체는 클래스 변수로 만들어져서 하나의 객체만이 생성이된다.
이렇게 생성!!
public class DepartmentDAO { private static DepartmentDAO deptInstance = new DepartmentDAO(); private DepartmentDAO(){ } public static DepartmentDAO getInstance(){ return deptInstance; } }
멀티 쓰레드 환경에서는 DCL(Duble Check Locking)을 구현한다.
public class DepartmentDAO { private static DepartmentDAO deptInstance = new DepartmentDAO(); private DepartmentDAO(){ } //객체 생성없이도 줄수 있는 static 으로 넘겨야 한다. public static SingletonDCL getInstance(){ // Double-Checking Locking if(uniqueInstance==null){ synchronized (SingletonDCL.class) { if(uniqueInstance==null){ uniqueInstance = new SingletonDCL(); } } } return uniqueInstance; } }
반응형
'JAVA > Design Pattern' 카테고리의 다른 글
[Design Pattern] #1. Business Class (Service) (0) | 2015.02.11 |
---|---|
[Design Pattern] #0. Value Object (0) | 2015.02.05 |