Model View Presenter (MVP) Pattern
Слушая недавний podcast о реализации MVC паттерна в ASP.NET обратил внимание на сделаное мельком замечание о MVP (Model View Presenter). Как оказалось этот паттерн в своем роде несколько похож на MVC и преследует схожие задачи - разделить интерфейс и логику. Но "заточен" он именно под модель разработки на базе контролов.
Почитав несколько статей я выудил следующие базовые концепции.
GUI (Web UI) для каждой формы реализует интерфейс IViewMyPage и предоставляет набор свойств для доступа к содержимому формы и событий которые завязаны на действия пользователя.
Presenter класс хранит ссылку на интерфейс IViewMyPage и источник данных (неважно как именно вы его реализуете). Он обрабатывает события из интерфейса и управляет его свойствами. Учитыва что у него ссылка на IViewMyPage его не интересует как это реально выглядит на странице и через какой контрол.
Вот пара ссылок по теме:
- Статья в MSD Magazine. Подробно но слишком расплывчато.
- haacked (Блог Фила Хаака - ведущего инженера по разработке ASP.NET MVC). Не так много теории, но зато прекрасный и простой пример.