해결된 질문
23.02.17 00:02 작성
·
366
답변 1
0
2023. 02. 17. 22:47
안녕하세요
좋은 질문이네요! 저도 처음에 의문을 품었던 것입니다.
예를 들어보겠습니다.
코인 데이터를 가져와서 api호출해서 가공하는 coinEditingFunction이 있다고 가정해보겠습니다.
그럼
A-viewModel 에서 coinEditingFunction 를 선언해서 localDB 에 저장하고
B-viewModel 에서 coinEditingFunction 를 선언해서 foreground service에 보여준다고 가정하면
이 coinEditingFunction 가 중복으로 선언됩니다.
때문에, 이런 과정을 한곳에 몰아넣기 위해 repository에서 처리하도록 한 것입니다.
지금은 A / B ViewModel 2개 밖에 없지만 실무에서는 이런 상황에 너무 복잡하고 어렵게 꼬이기 때문에 한곳에 만들어놓고 관리한는 것입니다.
coinEditingFunction 이 변경되어도 어디에서 선언되었는지 모두 변경해줄 필요가 없이 한곳만 변경하면 되니깐요!
이와 관련해서 클린아키텍처로 가면 useCase 으로 분류(layer)를 나눠서 사용하기도 합니다.
추가적인 질문 있다면 더 문의주세요~
2023. 02. 17. 22:58
아 그래서 따로 만들어두고 관리하는 것이군요
이해했습니다 감사합니다!!