이펙티브 자바 2장 Item5를 요약한 내용입니다.
클래스에서 자원을 사용해야하는 경우 클래스 내에서 자원 인스턴스를 직접 생성하고 정적 유틸리티 클래스 혹은 싱글턴으로 구현하는 경우가 있다.
하지만 이 방법은 자원에 따라 다른 동작을 할 수 없고 테스트가 어려우며 멀티스레드 환경에서 사용할 수 없다.
대신 인스턴스를 생성할 때 생성자에게 필요한 자원을 넘겨주는 의존 객체 주입방식으로 구현하는 것이 좋다
의존객체주입은 생성자, 정적 팩터리, 빌더 모두에 똑같이 응용할 수 있다
이 패턴의 변형으로 생성자에 자원 팩터리를 넘겨주는 방식이 있다
자바8에서 등장한 Supplier<T> 인터페이스가 팩터리의 예이다.
의존성이 큰 프로젝트는 코드가 어지러워진다.
스프랑 같은 의존객체주입 프레임워크를 사용하여 문제를 해결할 수 있다
[이펙티브 자바] Item 7. 다 쓴 객체 참조를 해제하라 | 2장 (0) | 2023.04.05 |
---|---|
[이펙티브 자바] Item 6. 불필요한 객체 생성을 피하라 | 2장 (0) | 2023.04.05 |
[이펙티브 자바] Item 4. 인스턴스화를 막으려거든 private 생성자를 사용하라 | 2장 (0) | 2023.03.29 |
[이펙티브 자바] Item 3. private 생성자나 열거타입으로 싱글턴임을 보증하라 | 2장 (0) | 2023.03.29 |
[이펙티브 자바] Item 2. 생성자에 매개변수가 많다면 빌더를 고려하라 | 2장 (0) | 2023.03.22 |