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()