Home 5.의존과 DI
Post
Cancel

5.의존과 DI

의존

  • 기능 구현을 위해 다른 구성 요소를 사용하는 것
  • 의존은 변경이 전파될 가능성을 의미

순환의존

  • 순환 의존 → 변경 연쇄 전파 가능성

의존하는 대상은 적을 수록 좋음

의존 대상이 많은 경우

기능이 많은 경우

  • 한 클래스에서 많은 기능을 제공
    • 각 기능마다 의존하는 대상이 다를 수 있음
    • 한 기능 변경이 다른 기능에 영향을 줄 수 있음
  • 기능 별로 클래스를 분리 고려
    • 각 클래스 별로 의존이 줄어듦
    • 한 기능을 수정할 때 다른 기능과 관련된 수정을 하지 않아도 됨
    • 기능 테스트도 수월해짐

묶어보기

  • 몇 가지 의존 대상을 단일 기능으로 묶어서 생각하여 의존을 줄임

의존 대상 객체를 직접 생성하면??

  • 생성 클래스가 바뀌면 의존하는 코드도 바뀌게 됨

의존 주입 (Dependency Injection)

  • 외부에서 의존 객체를 주입
    • 생성자나 메서드를 이용해서 주입

조립기 (Assembler)

조립기가 객체 생성, 의존 주입 처리 (Spring Framework)

장점

  1. 상위 타입을 사용할 경우 의존 대상이 바뀌면 조립기(설정)만 변경하면 됨
  2. 의존하는 객체 없이 대역 객체를 사용해서 테스트 가능

    DI를 습관처럼 사용하자!!!

This post is licensed under CC BY 4.0 by the author.

4.기능과 책임분리

6.DIP