2016-07-21 3 views
3
에 의존 초기화를

내 응용 프로그램은 세 가지 구성 요소를 가지고 자신의 범위 각 :런타임

  1. 싱글 - 전체 애플리케이션의 라이프 사이클
  2. 활동에 사용 - 액티비티의 라이프 사이클에 사용
  3. 사용자 - 우리 서버에 사용자가 로그인하는 동안 사용

내 활동 중 일부는 사용자 구성 요소에 종속됩니다. 그러나 일부 활동은 사용자가 로그인하지 않았을 때 존재하므로 사용자 구성 요소가 작성되지 않았을 때 존재해야합니다.

내 생각은 나에게주는 추가 구성 요소를 정의하는 것이 작업을 수행하는 가장 좋은 방법, 올바른 경우 :

  1. 싱글
  2. LoggedOutActivity - 활동을 위해 사용자가
  3. 을 로그 아웃 할 때 존재
  4. 사용자
  5. LoggedInActivity - 사용자가 따라서

에 로그인 한 경우에만 존재 활동 LoggedOutActivities에는 User 구성 요소의 종속성이 없으며 LoggedInActivities는 이제 User 구성 요소에 대한 종속성을 가질 수 있습니다.

이 추가 구성 요소를 생성하고 내 활동을 분리하면 분명히 코드에 약간의 복잡성이 추가됩니다. 그래서 진행하기 전에 올바른 접근 방식처럼 들리겠습니까? 아니면 모든 활동을 단일 범위 내에서 함께 묶을 수있는 더 나은 접근법이 있습니까?

답변

1

이것은 모두 당신이 무엇을하고 싶은지에 따라 달라집니다. —.

먼저, 내 접근 방식이 괜찮은 것 같습니다. 종속성이 다르면 다른 구성 요소가 필요합니다. 이것이 구성 요소의 용도이며이를 사용하는 방법입니다.

저는 개인적으로 가장 자주 활동마다 하나의 구성 요소가 있습니다. 그런 다음이 구성 요소를 필요한 다른 구성 요소에 종속되게 할 수 있습니다. 내 모든 활동에 같은 구성 요소를 재사용하지 마십시오.

코드를 다시 사용하려면 모듈을 다시 사용하고 싶을 것입니다. 당신이 항상 당신의 활동 (Context, FragmentManager, 등등)에서 동일한 것들을 제공한다면 그것들을 제공하는 전용 모듈을 만드십시오. 그런 다음 모두 동일한 모듈을 사용하여 활동 범위 종속성을 제공하는 여러 구성 요소를 만들 수 있습니다. — 하나는 각 활동에, 하나는 사용자에 종속적이고 다른 하나는 설명 된대로 app 구성 요소에 의존합니다.