Именование методов доступа к данным в Clean Architecture

313
17 июня 2017, 12:06

Можно ли мыслить в терминологии конкретного источника данных (например, базы данных) в Presentation (Presenter) и Domain (Interactor) слоях? Для примера: может ли presenter вызывать у interactor'a метод saveAccountInDB() или правильнее будет saveAccountInRepository()?

Вопрос: стоит ли скрывать фактический источник данных в методах доступа к ним?

Answer 1

Нет. Нельзя раскрывать истинный источник данных.

Презентер занимается только перенаправлением данных в нужный интерактор и ничего не знает о какой-либо логике\источнике. Правильнее будет вызвать у интерактора метод saveAccount(...). Интерактор же общается с репозиторием, а репозиторий не должен рассказывать о источнике данных. От сюда выходит, что и интерактор вызывает метод saveAccount(...) у репозитория.

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

READ ALSO
Структура пакетов в Clean Architecture

Структура пакетов в Clean Architecture

Как правильно раскладывать пакеты в проекте, если используется "Чистая архитектура"? Есть ли какие-то нормальные проекты-примеры реализации...

292
Русские символы regex в java

Русские символы regex в java

Почему получаются разные результаты следующих методов?

302
Пример использования SpeechRecognizer

Пример использования SpeechRecognizer

Здравствуйте, может ли кто дать простой пример использования SpeechRecognizer? Мне нужно чтобы пользователь говорил на английском, и это выводилось...

283
background-size в некоторых браузерах

background-size в некоторых браузерах

ЗдравствуйтеМне нужно поставить фоновую картинку для элемента меню, так, чтобы эта картинка была прижата к низу элемента, и растянута на всю...

267