본문 바로가기
Android개발/Dagger2

Dagger2 기본 #4 - Component 의존 관계

by 궝테스트 2020. 5. 29.
'아키텍처를 알아야 앱 개발이 보인다' 책을 보며 정리 및 간단 리뷰를 남긴다
어느정도 아키텍처, dagger, rxJava, Jetpack 등의 선행학습 후 복습 차원에서 보면 좋을 것 같다

 

여러개의 Component 를 생성하고 서로 의존 관계를 맺을 수 있으며,
SubComponent 와 Component 상속 두 가지 방법이 있다.

1. SubComponent

  • 상위 Component 란 Component/SubComponent 둘 다 될 수 있으며,
    SubComponent 는 상위 Component 내에 구현된다
  • 또한 SubComponent 내에 또 다른 SubComponent 를 구성할 수도 있다
  • SubComponent 는 상위 Component 에 바인딩된 모든 의존성을 제공 받는다
    반대로 상위 Component 는 하위 Component 의 의존성을 제공받을 수 없다 (책의 그림2-2 참고)
  • @Subcomponent 어노테이션을 지정하여 정의할 수 있으며,
    @Subcomponent.Builder/Factory 어노테이션으로 Builder/Factory 를 반드시 정의해야한다
    (책의 예제 코드 참고)
  • SubComponent 는 독립적인 생명주기를 갖으며,
    Component 가 존재하는 동안 SubComponent 는 생성과 소멸을 반복할 수 있다
    (즉, Component 가 소멸 -> SubComponent 도 소멸)

2. Component 상속

  • SubComponent 는 상위 Component 와 밀접하게 연결되어 분리가 어려워 그 대안으로 상속이 있다
  • 상속은 @Component 어노테이션 속성 중 dependencies 에 상속하고자 하는 Component 클래스를 추가하면 된다
  • ComponentB 가 ComponentA 를 상속했다면,
    A 에서 Provision 메소드를 선언하면 B 는 A 로부터 의존성을 제공받을 수 있다 (책의 예제 코드 참고)

'Android개발 > Dagger2' 카테고리의 다른 글

Dagger2 기본 #5 - Binding  (0) 2020.05.29
Dagger2 기본 #3 - Component  (0) 2020.05.29
Dagger2 기본 #2 - Module  (0) 2020.05.28
Dagger2 기본 #1 - 시작  (0) 2020.05.27
DI : Dependency Injection  (0) 2020.05.25

댓글