일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 북한살둘레길
- T자형인재
- 소프시스
- 면접
- 커스텀린트
- 베드테이블
- 재택근무
- 자취필수템
- 슬기로운 온라인 게임
- 목적 중심 리더십
- 안드로이드
- 아비투스
- 한달독서
- 소프시스 밤부 좌식 엑슬 테이블
- 지지않는다는말
- 캐치마인드
- 함수형 프로그래밍
- 1일1커밋
- 끝말잇기
- 한달어스
- 프래그먼트
- 좌식테이블
- 리얼하다
- 한단어의힘
- 브런치작가되기
- 테트리스
- 베드트레이
- 어떻게 나답게 살 것인가
- 한달브런치북만들기
- 목적중심리더십
- Today
- Total
정상에서 IT를 외치다
[Dagger] Dagger step4 - Module 초기화 본문
안녕하세요. 블랙진입니다.
이번 포스팅에서는 모듈을 초기화 하는 방법에 대해 살펴보겠습니다. 지난 카페예제에서 카페를 생성할 때 아래와 같은 방법으로 생성했습니다.
@Module
public class CafeModule {
@Singleton
@Provides
CafeInfo provideCafeInfo() {
return new CafeInfo("BlackJin");
}
//...
}
"BlackJin" 이라는 이름의 카페를 고정해서 만들었는데 카페 이름을 대거를 선언할 때 초기화 할 수 있게 수정해 보겠습니다.
1. CafeComponent 수정
빌터 패턴 형식으로 Component 생성시 모듈을 선택하여 넣을 수 있습니다.
@Singleton
@Component(modules = CafeModule.class)
public interface CafeComponent {
//...
@Component.Builder
interface Builder{
Builder cafeModule(CafeModule cafeModule);
CafeComponent build();
}
}
2. CafeModule 생성자 추가
CafeModule에서는 CafeName을 받을 수 있는 생성자를 만들어 줍니다.
@Module
public class CafeModule {
private String cafeName;
public CafeModule(String cafeName) {
this.cafeName = cafeName;
}
@Singleton
@Provides
CafeInfo provideCafeInfo() {
return new CafeInfo(cafeName);
}
//...
}
3. 사용예제
CafeComponent cafe = DaggerCafeComponent.builder()
.cafeModule(new CafeModule("Tistory World"))
.build();
CafeInfo cafeInfo = cafe.cafeInfo();
cafeInfo.welcome();
에제에서 사용한 코드는 깃허브에서 보실 수 있습니다.
'안드로이드' 카테고리의 다른 글
[Android, Proguard] 안드로이드 프로가드 설정하기 3 (0) | 2020.03.13 |
---|---|
[Dagger] Dagger step5 - Binds와 Multi binding (0) | 2020.02.11 |
카메라 예제와 함께 보는 Scoped Storage (안드로이드 Q 대응) (1) | 2020.01.13 |
카메라 예제와 함께 보는 Scoped Storage (이미지 가져오기) (0) | 2020.01.13 |
[Android] Customing BottomNavView (0) | 2019.11.27 |