Я изо всех сил пытаюсь применить шаблон репозитория в проекте.
Требование не сложное:
1. Когда клиент запрашивает некоторый список сущностей с сервера, клиент сохраняет их влокальная база данных для кеширования.2. Если есть кеш, клиент должен использовать их (в течение срока действия).3. Когда клиент получает действия пользователя, такие как обновление данных, или получает какое-то уведомление, клиент должен обновить локальные данные с удаленного сервера, истек ли он или нет.
Я изучил абстрактное постоянство шаблона хранилища сущности домена.
Таким образом, приложению не нужно знать, откуда исходит сущность.(из серверной или локальной базы данных и т. д.)
Но как я могу обновить локальные данные, скрытые в хранилище?
Добавляя флаги в аргумент метода хранилища?
fun get(id: EntityId, update: Boolean)
Но я думаю, что это раскрывает детали реализации.
Должно ли хранилище прослушивать событие домена, подобное UpdateEntityRequested
?