Item 5
Item 5
자원을 직접 명시하지 말고 의존 객체 주입을 사용하라
- 클래스는 내부적으로 하나 이상의 자원 (다른 클래스)에 의존하는 경우가 많음
- 이 자원에 따라 사용하는 동작이 달라지는 경우가 존재 가능
- 이 때는 정적 유틸리티 클래스 혹은 싱글턴을 사용하는 것은 좋은 선택이 아님
- 또한 클래스가 직접 자원을 만들게 하는 것도 좋은 방법이 아님 (유연성이 떨어짐)
- 이를 해결하기 위해 의존 객체 주입 방식을 사용하면 됨
- 대표적인 의존 객체 주입 방식은 인스턴스를 생성할 때, 생성자에 필요한 자원을 넘겨주면 됨
- 혹은 생성자에
자원
의 팩터리를 넘겨주는 방법이 존재
- 그러나 이렇게 의존성을 주입하는 방식은 코드를 과하게 복잡하게 만들 수 있음
- Dagger, Guice, Spring 등의 의존 객체 주입 프레임워크를 활용하면 이 문제를 해결 가능
References
- 조슈아 블로크 - Effective Java 3/E