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
반응형