[Effective Java] 2 - item5 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라
item5 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라.
정적 유틸리티 클래스
싱글톤
- 위와 같이, 사용하는 자원에 따라 동작이 달라지는 클래스에는 정적 유틸리티 클래스나 싱글톤 방식이 적합하지 않다. (ex/ 맞춤법 검사기) -> 의존 객체 주입을 사용하자.
의존 객체 주입 방식
- 자원의 개수나 의존 관계에 관계없이 잘 작동한다.
- 불변을 보장하여 여러 클라이언트가 의존 객체들을 안심하고 공유할 수 있다.
- 유연성을 높이고 테스트를 더 용이하게 해준다.
- Spring과 같은 프레임워크를 사용하면 코드가 더 깔끔하게 개선된다.
유틸리티 클래스에 의존성의 가지는 코드를 테스트 하는 경우, 정확한 테스트를 진행할 수 없다.
외부에서 객체를 관리해 줄 수 있게 되면 테스트의 유연성이 늘어난다.
변형으로, 생성자에 자원 팩터리를 넘겨주는 방식이 있다. (팩터리 메서드 패턴)
Leave a comment