-
자바 디자인 패턴(1)_싱글톤 패턴Java 2023. 11. 6. 16:55
싱글톤 패턴
- 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴으로 인스턴스 생성 시 비용절감의 장점이 있고, 의존성이 높아진다는 단점이 있다.
- 데이터베이스 연결모듈에 사용된다.
- 각 테스트마다 독립적인 인스턴스를 만들기 어렵다.
- 의존성이 높아진다는 단점은 의존성 주입을 통해 모듈간 결합을 느슨하게 만들 수 있다.
- 메인 모듈이 하위모듈에 직접적으로 의존성을 주기보다는 중간에 의존성 주입자를 통해 간접적으로 의존성을 주입하는 방식(디커플링)
- 상위 모듈은 하위 모듈에서 어떤것도 가져오면 안된다.
- 상위, 하위 모듈은 모두 추상화에 의존해야 하며, 추상화는 세부 사항에 의존하지 말아야한다.
class Singleton { private static class instanceHolder { private static final Singleton INSTANCE = new Singleton(); } public static synchronized Singleton getInstance() { return instanceHolder.INSTANCE; } } public class HelloWorld{ public static void main(String []args){ Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); System.out.println(s1.hashCode()); // 2060468723 System.out.println(s2.hashCode()); // 2060468723 if (s1 == s2) { System.out.println("equal"); // equal } } }출처)
책 : 면접을 위한 CS 전공지식 노트
'Java' 카테고리의 다른 글
자바 디자인 패턴(3)_전략 패턴 (0) 2023.11.06 자바 디자인 패턴(2)_팩토리 패턴 (0) 2023.11.06 자바 String, StringBuffer, StringBuilder 차이 (0) 2023.10.12 자바 new String()과 리터럴("")의 차이 (0) 2023.10.12 자바 URL 통신 사용법 및 총 정리 (0) 2023.10.12