싱글톤 인스턴스가 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우, SOLID 원칙 중 SRP, OCP 원칙에 위배됨.
즉, 수정과 테스트가 어려워짐
꼭 필요한 경우아니면 지양해야 함
1.3. 활용 상황
공통된 객체를 여러 개 생성해서 사용해야하는 상황
전역에서 사용될 하나의 객체를 만들어야하는 상황
ex. DBCP(Database Connection Pool), 로거(Logger)
2. 구조
출처 : https://www.tutorialspoint.com
3. 코드
// SingletonPatternDemo.java
public class SingletonPatternDemo {
public static void main(String[] args) {
// 항상 getter 로 객체를 받아와야 함.
SingleObject object = SignleObject.getInstace();
}
}
// SingleObject.java
public class SingleObject {
private static SingleObject instance = new SingleObject();
// 생성자는 내부에서만 호출되게 한다.
private SingleObject(){}
// 외부에서 객체를 받아갈 수 있는 방법은 getInstance() 가 유일하다.
public static SingleObject getInstance() {
return instance;
}
}