Приветствую всех, сегодня поговорим о паттерне MVP. Представьте что вы разрабатываете программу, которую можно разделить на три части.
MVP — шаблон проектирования пользовательского интерфейса, который был разработан для облегчения автоматического модульного тестирования и улучшения разделения ответственности в презентационной логике
Модель (model) представляет собой интерфейс, определяющий данные для отображения или участвующие в пользовательском интерфейсе иным образом. Это бизнес модель, взаимодействующая с базой данных.
Вид (view) — это интерфейс, который отображает данные (модель) и маршрутизирует пользовательские команды (или события) Presenter-у, чтобы тот действовал над этими данными. Это то что видит пользователь и с чем взаимодействует, кнопки, окно итд графическая оболочка.
Presenter действует над моделью и видом. Он извлекает данные из хранилища (модели), и форматирует их для отображения в Виде (view).
Суть разделения программа состоит в том что бы каждый модуль был не зависимым. Приведу пример, допустим у нас имеется десктопное приложение построенное на основе MVP имеются кнопки, текстовые поля итд. Наше приложение популярно, и мы решили его перенести на сервер, что бы оно было доступно как веб приложении, в этом случаи нам достаточно лишь изменить View , не затронув при этом Model и частично модернизировав Presenter. В этом и состоит концепция MVP.