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