작성
·
20
0
23강의 5:10에서 usecase,repository 는 싱글톤으로 만들고, viewmodel은 팩토리로 만드는 것이 일반적이라고 하셨습니다.
싱글톤으로 만드는 것은 이해했는데, 팩토리를 사용하는 이유는 무엇일까요?
viewModel 안의 state 의 내용이 UI 의 데이터로 채워지고, viewModel 안의 state 는 가변적이니 싱글턴으로 하는게 맞지 않을까라는 생각이 갑자기 들어서요. viewModel을 다시 만드는 것이 어떤 경우가 있는지 궁금합니다.
강의항상 재밌게 듣고 있습니다. 감사합니다.
답변 1
0
ViewModel 은 화면에 표시할 데이터를 제공하는 데이터 Holder 역할을 하게 됩니다.
화면을 위한 것이므로 화면과 같은 생명주기를 가져야만 버그 발생 가능성을 줄일수가 있습니다.
만약 List, Detail 두 개 화면이 있을 때 DetailViewModel 이 싱글턴으로 유지되면
새로운 항목 클릭해서 Detail 화면으로 왔을 때 기존 화면의 내용이 잠깐 남아 있다가 교체가 될 수도 있고
기존 화면의 내용 일부가 남아 있을 수도 있는 등의 버그 발생 가능성이 있고, 굉장히 귀찮아 집니다.
그래서 화면과 ViewModel 의 생명주기를 같게 하는 것이 중요합니다.
이해가 됐습니다! 감사합니다.