У меня есть хранилище, которое зависит от локального хранилища данных (кеша) и работает для неаутентифицированных пользователей.
Если пользователь, не прошедший проверку подлинности, входит в систему, мне нужно добавить удаленное хранилище данных в существующее хранилище данных и расширить функциональность хранилища данных, чтобы сначала извлекать данные из удаленного хранилища и рассматривать кеш как запасной вариант. Если пользователь выходит из системы, мне нужно удалить удаленное хранилище данных и снова использовать кеш.
Я читал о шаблоне декоратора, но все еще борюсь с этим.
Как добавить зависимость удаленного хранилища данных в хранилище данных во время выполнения, если пользователь решает войти в систему?
Диаграмма ниже может помочь проиллюстрировать.
UserDataRepository
является реализацией и агрегацией UserRepository
.
UserDataRepository
всегда зависит от локального хранилища данных.
Если пользователь входит в систему UserDataRepository
, требуется зависимость UserRemoteDataStore
.