Adnroid, MVP. Как определять, включать метод в интерфейс или нет? Здравствуйте.
Есть популярный короткий пример реализации паттерна mvp в android на примере страницы логина. Упрощу его и перейду к сути вопроса:
Интерфейс вьюхи содержит метод, который нас направит на страницу пользователя, если логин будет удачным:public interface LoginView {
void navigateToHome();
}
Тут все понятно.
Интерфейс презентера:public interface LoginPresenter {
void login();
}
В моем понимании должно быть так:
1. по нажатии на кнопку "логин" вызыватеся presenter.login()
2. в presenter.login() проверяется, если данные корректные, то вызывается view.navigateToHome()
В примере который разбираю в целом все реализовано так же лишь с одной непонятной мне деталью:
1. по нажатии на кнопку "логин" вызывается метод проверки корректности введенных данных view.validate(), из которого происходит вызов одноименного метода в презентере presenter.validate(), в котором и осуществляются все проверки и если они пройдены успешно, то вызывается уже login()
Мой вопрос в том, чем обусловлено то, что методы validate() не прописаны в интерфейсах view и presenter? Как понимать, нужно ли прописывать метод в интерфейсе или нет? Заранее всем спасибо.

21 Авг 2019 в 06:58
159 +1
0
Ответы
1

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

Если метод validate() является обязательным для всех видов экранов, которые будут использовать этот презентер, то его следует включить в интерфейс LoginView. Это обеспечит единообразие в реализации для всех классов, которые будут использовать этот интерфейс.

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

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

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 795 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир