2017-09-21 1 views
5

을 포함하는 Activity이 있습니다. 원격 저장소 (3 가지 요청)의 데이터로 RecyclerViews을 채워야합니다. Activity에 여러 개의 ViewModels을 사용할 수도 있고 더 좋은 해결책이있을 수도 있습니다 (모범 사례).여러 개의 ViewModel을 사용한 작업

+0

Google 샘플 AAC는 1 개의 LiveData가있는 RecyclerViews의 사용을 보여주었습니다. 3 개의 LiveDatas로 3 개의 RecyclerView를 실행하려고하면 어떤 문제가 발생합니까 –

답변

5

이 경우에는 세 가지 다른 LiveData 개체를 채우는 하나의보기 모델을 사용하는 것이 좋습니다. 이렇게하면 세 가지 요청 중 하나가 응답을받을 때마다 UI가 업데이트 될 수 있습니다. LiveData에서 RecyclerView를 사용하는 방법에 대한 자세한 내용은 Google Example을 참조하십시오.

필자는 활동 당 여러 개의보기 모델을 사용하면 복잡성이 증가하고 그 일을하는 데 어떤 가치도없는 것으로 생각됩니다.

+1

Google 예제 링크가 작동하지 않습니다. –

+0

감사합니다. 업데이트했습니다. – guglhupf

+0

@guglhupf 'RecyclerViews'간의 커플 링을 줄이고 독립적으로 재사용하거나 다른 화면으로 이동할 수있는 기능이 향상되었습니다. –

0

the open/closed principle에 따르면 ViewModel 세 가지를 만들어야합니다. 복잡도는 그만큼 증가하지 않으며 하나의 ViewModel을 해당 과 다른 하나를 Activity과 매우 쉽게 이동할 수 있습니다 (또는 재사용).

물론 때로는 규칙을 위반하는 것이 좋습니다. 예를 들어, 알고있는 경우, RecyclerView을 다시 사용하거나 다른 화면으로 옮길 수는 없습니다. 그러면 ViewModel이라는 간단한 솔루션으로 이동할 수 있습니다.

(도 3 개에는 포함) ViewModel 항상 매우 간단합니다 (단 세 LiveData 필드를 채우는 단 몇 줄의 코드를) 머물 가능성이 경우, 같은 상황, 당신은이 규칙을 깰 수 있습니다.

그러나 O/CP를 위반하는 것은 좋은 습관이 아닙니다. 의식을 깨는 것입니다.

관련 문제