Вместо введения RoomDatabase
в докладчик вы можете добавить DataManager
Singleton-класс.
Этот DataManager
может удерживать ваши WeakReferences
до DAO
с.В зависимости от того, когда вы пытаетесь получить доступ к данным, сначала проверьте, есть ли у вас их в памяти, передайте их докладчику, если нет, то Lazily получит доступ к RoomDB
, чтобы загрузить данные в память, а затем передать докладчику.
Таким образом, существует Единый Источник Истины, который обращается к вашим данным и управляет ими.