2017-02-15 2 views
2

내 응용 프로그램에서 Dagger 2 DI 프레임 워크를 사용하고 있습니다. 현재 인증 활동을위한 디렉토리 구조를 만들고 있습니다.대거 2는 조각에 의존성을 주입합니까? 단검 더미?

ApplicationScope 주석으로 범위가 지정된 AppComponent 및 AppModule이 있습니다.

개인 활동에 대해 저는 @ActivityScope를 보유하고 있습니다. 나는 AuthenticationActivity라는 하나의 액티비티를 가지고 있으며 그 유일한 임무는 LoginFragment와 SignUpFragment라는 두 개의 Fragment를 제시하여 사용자가 뷰 페이지를 스 와이프하여 둘 사이에서 변경할 수 있도록하는 것입니다. 자, 제 질문은 어떻게 대거 스택을 정렬해야합니까?

@Subcomponent(modules{LoginModule.class}) 
public interface LoginComponent{ 
    void inject(LoginFragment fragment); 
} 

내 응용 프로그램 구성 요소가 유사합니다 :

@Component(modules={AppModule.class}) 
public interface AppComponent{ 
    AuthenticationComponent plus(AuthenticationModule module); 
} 
내가 그런 일을 볼 수있는

@Subcomponent(modules{}) 
public interface AuthenticationComponent{ 
    LoginComponent plus(LoginModule module); 
} 

그리고 내 LoginComponent 같은 예를 들어, LoginFragment의 하위 구성 요소를 작성해야합니까

더 우아한 방법이 있는지 궁금합니다 (예 : AuthenticationComponent 생성을 피하십시오). 미리 감사드립니다! 어떤 조언도 높게 평가 될 것입니다!

+1

수 있습니다. 당신은 필요가 없습니다. 혹시 원한다면 모든 것을하는 글로벌 구성 요소를 하나만 가질 수 있습니다. 문제는 하위 구성 요소를 사용하여 어떤 가치를 창출 할 수 있다고 생각합니까? 나는 여기서 많이 보지 않는다. –

+0

@GabeSechan 의견을 주셔서 감사합니다. AuthenticationActivity에 아무것도 삽입하지 않는다고 생각합니다. 이 액티비티의 목적은 뷰 페이지를 사용하여 두 조각을 보여주기위한 것입니다. 그래서 나는 authenticationActivity 하위 컴포넌트를 가질 가치가 없다고 생각합니다. –

+0

@ GabeSechan 많은 중첩 된 하위 구성 요소가 있다는 혼란을 겪었으며 자동으로 잘못 생각한 것 같습니다 (큰 프로젝트에서 Dagger 2를 처음 사용하는 경우) –

답변

1

두 범위 (ApplicationScopeActivityScope)이면 충분하다고 생각합니다. 특정 활동 구성 요소를 통해 조각을 주입하십시오.

+0

안녕하세요! 답변 주셔서 감사합니다. 그러나 날씨를 묻지 않거나 전체 단편을 활동에 삽입하지 않았습니다. StackComponent가 2 개의 하위 컴포넌트로 구성되어 있으므로이 AuthenticationComponent가 필요하다는 것을 묻는 것입니다. –

+1

잘 이해하고 있는지 확실하지는 않지만 두 개의 하위 구성 요소는 꼭 필요하지 않습니다. – YMY

+0

알겠습니다. 답변 주셔서 감사합니다! :) –

관련 문제