Как реализовать шаблон репозитория с обновляемыми кешами - PullRequest
0 голосов
/ 23 сентября 2019

Я изо всех сил пытаюсь применить шаблон репозитория в проекте.

Требование не сложное:
1. Когда клиент запрашивает некоторый список сущностей с сервера, клиент сохраняет их влокальная база данных для кеширования.2. Если есть кеш, клиент должен использовать их (в течение срока действия).3. Когда клиент получает действия пользователя, такие как обновление данных, или получает какое-то уведомление, клиент должен обновить локальные данные с удаленного сервера, истек ли он или нет.

Я изучил абстрактное постоянство шаблона хранилища сущности домена.
Таким образом, приложению не нужно знать, откуда исходит сущность.(из серверной или локальной базы данных и т. д.)

Но как я могу обновить локальные данные, скрытые в хранилище?
Добавляя флаги в аргумент метода хранилища?

fun get(id: EntityId, update: Boolean)

Но я думаю, что это раскрывает детали реализации.
Должно ли хранилище прослушивать событие домена, подобное UpdateEntityRequested?

1 Ответ

0 голосов
/ 23 сентября 2019

Полагаю, вы ответили на свой вопрос.Вы должны как-то указать клиентскому кешу, что он должен обновляться.Тем не менее, если вы представите это с помощью событий в своем домене, то вы все равно будете привязывать свой домен к концепции постоянства.

Хорошая новость заключается в том, что вы можете просто сказать, существует ли событие для какого-либо события.агрегат, то вы должны обновить обратно на сервер.Это не должно быть конкретное событие.Любое событие в потоке достаточно, чтобы определить, что произошло изменение.

Пожалуйста, предоставьте более подробную информацию, если этого ответа недостаточно.

...