Written on
·
131
0
예제를 참고하면서 적용해보고 있는데,
DBManager이라는 클래스를 만들어서, 이렇게
룸세팅을해주고
fun getInstance(context: Context): DBManager? {
if (INSTANCE == null) {
synchronized(DBManager::class) {
INSTANCE = Room.databaseBuilder(context.applicationContext, DBManager::class.java, "rooms_list.db").build()
}
}
return INSTANCE
}
베이스 액티비티를 만들어서 여기서 인스턴스를 가져와서 사용중인데
dbManager = DBManager.getInstance(this) ?: return
이렇게 베이스 액티비티를 여러개의 액티비티에서 상속받아서 사용중입니다
viewmodel을 만들어서 viewmodel내에서 insert , select같은 쿼리를 처리하려고하는데 (예제처럼용)
이경우에는 룸세팅을 영상처럼 뷰모델안에다가 해줘야될까요? 아니면 상속받은액티비티들에서 dbManager를 (위에 코드 인스턴스받은 애) 뷰모델로 넘겨줘야되나요?
Answer 1
0
사실 어떻게 해도 코드가 동작하는 것은 똑같지만 저라면 ViewModel로 옮길 것 같습니다.
액티비티에는 UI 관련 코드만 남기는게 좋을 것 같습니다. 지금은 DB와 결합되어 있어서 결합도를 낮추는 것이 좋아 보입니다.
결합도를 낮춰야 테스트하기도 편리하고요.
아키텍쳐 설계하는 가이드를 참고하시면 더 좋은 인사이트를 얻을 수 있을 것 같습니다.