Android Room + шаблон Kotlin

в документации на Android Room говорится, что мы должны следовать шаблону проектирования singleton при создании экземпляра объекта AppDatabase.

Я думал об этом, и я хотел бы знать, рекомендуется ли его поместить класс AppDatabase в класс приложения. Или, если я смогу использовать Singleton Kotlin для этого.

Предположим, у меня есть DAO под названием CarroDAO и класс CarrosDatabase, который является RoomDatabase.

Можно ли создать класс DatabaseManager с использованием объекта Kotlin / singleton?

object DatabaseManager { private var dbInstance: CarrosDatabase init { val appContext = MyApplication.getInstance().applicationContext dbInstance = Room.databaseBuilder( appContext, CarrosDatabase::class.java, "mybd.sqlite") .build() } fun getCarroDAO(): CarroDAO { return dbInstance.carroDAO() } } 

Поэтому я могу получить класс DAO следующим образом:

 val dao = DatabaseManager.getCarroDAO() 

Intereting Posts
Запустите Kotlin REPL из контекста моего проекта Maven? RecyclerView добавляет «пустой» элемент макета, и когда я нажимаю его, приложение падает Подавить жалобы Dokka о «Нет документации для com.foo.Bar $ toString ()»? Выполнение не выполнено для задачи «app: copyDebugAndroidTestKotlinClasses» – Android Kotlin Build Error Ошибка Kotlin при ссылке на активность из внутреннего класса Почему тексты не меняются в действии? java.lang.AbstractMethodError: абстрактный метод при запуске espresso на Kotlin с Mockito Android onCheckedChangeListener поведение bizzare В Kotlin, как я могу обойти конфликты наследуемых объявлений, когда класс enum реализует интерфейс? Двоичная конвертация Int в Float в Котлин Kotlin: как преобразовать тест, который использует Thread.sleep для RxJava TestScheduler Как ввести фабрику переходных зависимостей с Kodein? RecyclerView с Kotlin не выставляет ячейки по вертикали Замена SAM-конструктора на лямбда ковариантным типом Как использовать MapBuilder в kotlin и добавить все значения?