Why should ViewModel not be Singleton Object?

이상빈·2021년 8월 16일
1

현재 만든 키보드 어플을 리팩토링 작업하면서,

안드로이드 디자인 패턴에 관해 열심히 구글링하던 중

문득, 왜 SharedViewModel은 여러 Fragment/Activity에서 사용되도록 짜였지만, 왜 Ojbect로 구현을 하지 않을까?

하는 생각이 들었다.

Fragment/Activity에서 공통으로 쓰이는, 인스턴스를 2개 이상 가질 필요가 없으므로 Object로 작성하면 더 쉽지 않나?

당연히 나랑 똑같은 생각을 하는 사람들이 있었다.

https://stackoverflow.com/questions/5006038/mvvm-viewmodels-singleton

왜 싱글턴으로 구현하면 안 되는지 내 나름대로 해석해보자면

1. (싱글턴으로 구현 시) 오브젝트 특성상, Database로부터 어떤 데이터를 갖고올 필요가 없는 상황에서도 계속 데이터베이스 참조를 유지함 = 메모리 누수로 이어짐

2. 여러 곳에서 참조하기 때문에 유닛 테스트가 어려워짐

위처럼 크게 두가지 이유로 요약이 가능할 것 같다.

profile
발전을 좋아하는 사람

0개의 댓글