0

클린 아키텍처의 개념을 사용하는 프로젝트에서 우선 순위 작업 큐를 사용하고 있습니다. 문제는이다 : 우선 순위 작업 큐와 DI를 할 나는이 같은 BaseJob 작업 만들어야합니다클린 아키텍처의 우선 순위 작업 큐를 사용한 종속 삽입

abstract public class BaseJob extends Job { 

    @Retention(RetentionPolicy.SOURCE) 
    @IntDef({UI_HIGH, BACKGROUND}) 
    public @interface Priority { 

} 

public static final int UI_HIGH = 10; 
public static final int BACKGROUND = 1; 

public BaseJob(Params params) { 
    super(params); 
} 

protected boolean shouldRetry(Throwable throwable) { 
    return true; 
} 

public void inject(ApplicationComponent appComponent) { 

} 

문제가를 그 라인 :

public void inject(ApplicationComponent appComponent) { 

} 

내가 어떤 ApplicationComponent에 액세스해야 프레젠테이션의 레이어에 있지만 BaseJob은 데이터 레이어에 있기 때문에 액세스 할 수 없습니다.

데이터의 레이어를 프레젠테이션에 대해 알면 깨끗한 아키텍처의 원칙을 위반하게됩니다.

아무도 내가 그 일을 할 수있는 아이디어가 있습니까?

+0

를 보라? –

+0

이 샘플 다음 : [link] (https://github.com/yigit/dev-summit-architecture-demo/blob/master/client/app/src/main/java/com/android/example/devsummit/archdemo) /di/module/ApplicationModule.java). 내 작업에 의존성을 주입하는 데 사용하고 있습니다. 코드를 여기에 배치 할 수 없으므로 111 행에 있습니다. – user2601142

답변

0

Bob 아저씨의 깨끗한 아키텍처에는 데이터 계층이 아니라 엔티티, 사용 사례, 인터페이스 어댑터 및 프레임 워크가 있습니다. 내부 서클은 외부 서클에 대해 알 필요가 없습니다. 내부 원에 인터페이스를 정의하고 외부 원에 구현하여 종속성을 반전시킬 수 있습니다.

아마도 Uu ApplicationComponent가 내부 원에서 정의되도록 인터페이스가 필요합니다. 의존성 반전에 대한 자세한 설명을 위해

은 당신이 appComponent에 뭐 내 게시물 https://plainionist.github.io/Implementing-Clean-Architecture-Controller-Presenter/

관련 문제