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? Как понимать, нужно ли прописывать метод в интерфейсе или нет? Заранее всем спасибо.
Принято определять, стоит ли включать метод в интерфейс или нет, исходя из того, насколько этот метод является обязательным для реализации во всех конкретных классах, которые будут имплементировать этот интерфейс.
Если метод validate() является обязательным для всех видов экранов, которые будут использовать этот презентер, то его следует включить в интерфейс LoginView. Это обеспечит единообразие в реализации для всех классов, которые будут использовать этот интерфейс.
Если метод validate() является специфичным для данной страницы логина и может не потребоваться на других экранах, то его лучше оставить в конкретной реализации класса, не включая его в интерфейс.
В целом, лучше заранее продумать, какие методы будут обязательными для всех классов, имплементирующих интерфейс, и включить их в интерфейс, чтобы обеспечить стабильность и надежность вашего кода.
Принято определять, стоит ли включать метод в интерфейс или нет, исходя из того, насколько этот метод является обязательным для реализации во всех конкретных классах, которые будут имплементировать этот интерфейс.
Если метод validate() является обязательным для всех видов экранов, которые будут использовать этот презентер, то его следует включить в интерфейс LoginView. Это обеспечит единообразие в реализации для всех классов, которые будут использовать этот интерфейс.
Если метод validate() является специфичным для данной страницы логина и может не потребоваться на других экранах, то его лучше оставить в конкретной реализации класса, не включая его в интерфейс.
В целом, лучше заранее продумать, какие методы будут обязательными для всех классов, имплементирующих интерфейс, и включить их в интерфейс, чтобы обеспечить стабильность и надежность вашего кода.