Android MVP: что такое Interactor?

Что такое Interactor? Как он вписывается в дизайн MVP? Каковы преимущества / недостатки использования интерактора или помещения кода-посредника в презентаторе?

Solutions Collecting From Web of "Android MVP: что такое Interactor?"

MVP существовал для решения проблемы активности Бога (Activity / Fragment, который имеет слишком много строк).

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

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

Преимущества использования интерактора в отдельном классе заключаются в том, что он отделяет ваш класс, делая его более чистым и проверяемым. Конечно, вы можете поместить интерактора в свой внутренний класс презентатора, но в чем смысл? Недостатки, связанные с размещением интерактора в вашем презентаторе, будут способствовать тому, что ваш класс презентатора станет более сложным для чтения и управления.

Обновление: Конечно, это просто чрезмерное упрощение, если вы хотите копать глубже, вы можете увидеть блог fernando cejas или блог antonio leiva

Interactor содержит прецеденты приложения, что означает, что он будет содержать все реализации для бизнес-домена проекта.

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

Также я создал приложение для Android под названием JuicyInsta , используя шаблон MVP и API Instagram, который поделен здесь на github.

Лично я использую View, Present и Interactor, который для меня отличается от модели.

Вы можете подумать о Interactor как классе с полезными методами для извлечения данных из базы данных, сервера и т . Д. После того, как вы получите данные, вы можете заполнить свою модель в Interactor и вернуть ее в Presenter.

EG. У вас может быть LoginInteractor, который создает Asynctask для аутентификации пользователя, а затем заполняет UserModel полученными данными.