Java

[Effective Java] 아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라.

quedevel 2022. 5. 24. 10:35
728x90
반응형
abstract class Lexicon { ... }
class EnglishLexicon extends Lexicon { ... }
class KoreanLexicon extends Lexicon { ... }
class SpellChecker {
    private Lexicon dictionary;
    public SpellChecker(Supplier<? extends Lexicon> supplier){
        this.dictionary = supplier.get();
    }
    public static boolean isValid(String word){ ... }
}
  • SpellChecker에서 dictionary 변수를 생성자를 통해서 외부에서 주입받고록 작업이 되어있다.
  • 이는 필요한 자원을 생성자에 넘겨주어 클래스의 유연성과 재사용성을 개선해준다.

참고 자료

Joshua Bloch, 『Effective Java 3/E』, 개앞맵시 옮김, 프로그래밍인사이트(2018)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966262281&orderClick=LEa&Kc=

728x90
반응형