На каком уровне я должен выполнять сетевые вызовы при реализации MVP?

#android

#Android

Вопрос:

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

Комментарии:

1. IMO это должно быть на уровне модели, в то время как проверка должна выполняться на Presenter.

2. Предположим, я использую volley для выполнения сетевого вызова, куда идет код для него? должен ли я создавать функцию внутри класса модели или на уровне представления?

3. Ваш фреймворк Volley уже является вашей моделью. Вы просто собираетесь вызвать его в своем presenter и выполнить его аргументы с помощью ваших проверенных входных данных.

4. Так будет ли правильно в соответствии с политикой MVP, если я выполняю свои сетевые вызовы с уровня presenter и извлекаю данные (в моем случае JSON) и сохраняю их, используя интерфейс, предоставленный на уровне модели?

Ответ №1:

Логика входа в систему — это ответственность за модель, она используется для настройки состояния модели. После входа в систему у вас, вероятно, будет авторизованный пользователь со связанной моделью, которую вы будете использовать на более низких уровнях для представления представлений.

Комментарии:

1. Хорошо, я понял! У меня есть еще одно сомнение, следующим шагом будет извлечение данных из сети, добавление, а затем извлечение сведений для каждого элемента. Как насчет создания класса вместе со всеми классами модели, который помогает извлекать данные из сети

2. @GurleenSethi: определенно было бы разумно инкапсулировать общую логику для доступа к удаленному хранилищу данных.