'아키텍처를 알아야 앱 개발이 보인다' 책을 보며 정리 및 간단 리뷰를 남긴다
어느정도 아키텍처, 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 |
댓글