Item 5. Prefer Dependency Injection to Hardwiring Resources
자원을 직접 명시하지 말고 의존 객체 주입을 사용해라
의존 객체 주입의 개념
생성자 주입
public class SpellChecker {
private final Lexicon dictionary;
public SpellChecker(Lexicon dictionary) {
this.dictionary = Objects.requireNonNull(dictionary);
}
public boolean isValid(String word) {
// 사전에서 단어를 검사하는 로직
return dictionary.contains(word);
}
}세터 주입
필드 주입
의존 객체 주입의 장점
유연성과 재사용성
테스트 용이성
코드의 가독성과 유지보수성
실세계 예제: 스프링부트와 의존 객체 주입
서비스와 리포지토리 클래스
컨트롤러 클래스
테스트 클래스
결론
PreviousItem 4. Enforce Noninstantiability with a Private ConstructorNextItem 6. Avoid Creating Unnecessary Objects
Last updated