MVP
MVP расшифровывается как Model - View-Presenter. Это стало известно в начале 2007 года, когда Microsoft представила Windows-приложения Smart Client.
Presenter выполняет роль наблюдателя в MVP, которая связывает события и бизнес-логику с моделями.
Привязка к событию представления будет реализована в Presenter из интерфейса представления.
Представление является инициатором пользовательских вводов, а затем делегирует события Presenter, а Presenter обрабатывает привязки событий и получает данные из моделей.
Плюсы:
Вид имеет только пользовательский интерфейс, а не логику
Высокий уровень тестируемости
Минусы:
Немного сложнее и больше работы при реализации привязок событий
MVC
MVC расшифровывается как Model-View-Controller. Контроллер отвечает за создание моделей и рендеринг представлений с привязкой моделей.
Контроллер является инициатором, и он решает, какое представление визуализировать.
Плюсы:
Акцент на принципе единой ответственности
Высокий уровень тестируемости
Минусы:
Иногда слишком большая рабочая нагрузка для контроллеров, если попытаться визуализировать несколько представлений в одном контроллере.