Как лучше организовать архитектуру кода для работы с Room и Курсорами Android?
В задании нужно реализовать работу с БД через Room и Курсоры. Реализации должны переключаться в runtime. Я реализовал CRUD операции через Room. Осталось придумать как переключать реализацию на курсоры. Есть следующие мысли: сделать две имплементации Dao для Room и Курсоров и в Репозитории используя делегат возвращать реализации для Room либо Курсоров читая preference. 2й вопрос: У меня есть dao интерфейс с аннотациями для Room , могу ли я этот интерфейс использовать для курсора?
Ответы (1 шт):
Автор решения: Dmitry Kucherenko
→ Ссылка
В общем сделал в Repository поле CarDao так:
private var carDao:CarDao=database.carDao()
get(){
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
val dataSource = sharedPreferences.getBoolean("switch",true)
return if(dataSource) database.carDao() else
CarDatabaseCursor(context)
}