공부기록

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

JAVA

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

gracelove91 2019. 11. 27. 14:13
반응형

자원을 직접 명시하지 말고 의존객체주입을 사용하라.

  • 많은 클래스가 하나 이상의 자원에 의존

  • 인스턴스를 직접 사용하면 유연성이 떨어진다.

    public class SpellChecker {
      private static final Lexicon dictionary = new ...();
    }
  • 클래스가 여러자원 인스턴스를 지원해야한다.

    • 인스턴스를 생성할 때 생성자에 필요한 자원을 넘겨주는 방식.

    • 팩터리 메서드 패턴을 구현하는 방식

      public class SpellChecker {
      private final Lexicon dictionary;
      
      public SpellChecker(Lexicon dictionary) {
        this.dictionary = Objects.requireNonNull(dictionary);
      }
      }

정리

하드코딩하지말고 유연하게 코딩할 것. 스프링프레임워크가 좋은 이유 또한 DI를 지원하기 때문이다.

반응형