который загружает этот профайл из базы/загружает профайл из сети/создает пустой (это три разных usecase, правильно?)
1. результат их действия объединяется в каком месте? ну там получить данные из трех источников сравнить между собой выбрать оптимальный?
2. результат их действия хранится в каком месте? к примеру хочется сохранить профайл в памяти до следующего обновления.
1. если я правильно понял то интерактор должен думать сравнивать (логика сравнения у него) а репо только предоставить интерфейсы для работы с источниками 2. опять же имхо в репо надо делать методы для сохранения и загрузки результатов, а куда и как это он пускай разбирается ,но могу ошибаться
1. Логика же как-то описана, верно? Соответственно, интерактор. 2. Варианты разные, тут в зависимости от требований. У репозитория может быть кэш, например.
Смотря какая задача, если нужно показать сначала кэш, потом данные с сервера, то для этого можно использовать один UseCase. UseCase может сам выбрать кэш или удаленный источник, может об этом вообще ничего не знать, существуют разные подхходы. Создание профайла это отдельный UseCase да. Объеденять разные UseCase можно в интеракторе, интерактор содержать несколько UseCase и может их комбинировать. Выбор оптимальных данных по параметрам это же ваша бизнес логика?
Обсуждают сегодня