Что такое MVP
MVP – это способ разделения ответственности в коде приложения. Model предоставляет данные для Presenter. View выполняет две функции: реагирует на команды от пользователя(или от элементов UI), передавая эти события в Presenter и изменяет gui по требованию Presenter. Presenter выступает как связующее звено между View и Model. Presenter получает события из View, обрабатывает их(используя или не используя Model), и командует View о том, как она должна себя изменить.
У такого подхода к разделению ответственности есть ряд плюсов:
- Сильно упрощается написание тестов к коду
- Легко менять какую-то часть, не ломая при этом другую
- Код разбивается на мелкие кусочки, за счёт чего он становится более понятным и читабельным
В то же время, конечно, есть и минусы:
- Кода становится больше
- К этому подходу нужно привыкать
- На данный момент не сильно распространённый(но известный) подход, поэтому приходится всем рассказывать о нём