Система Orphus
Версия для печати

Model-View-Controller в .Net

Model-View-Presenter и сопутствующие паттерны

Автор: Иван Бодягин
The RSDN Group

Источник: RSDN Magazine #2-2006
Опубликовано: 25.07.2006
Исправлено: 10.12.2016
Версия текста: 1.1
Введение
«Оригинальный» MVC
Model (Модель)
View (Представление)
Controller (Контроллер)
Недостатки MVC и Document-View
Model-View-Presenter
Model
Presenter
View
Почему интерфейс?
Отличия от MVC
Заключение
Что почитать

Введение

В наше время сложно найти разработчика, который не слышал бы о паттерне под названием Model-View-Controller или сокращенно MVC, что вообщем не удивительно, с задачей отделения данных от их представления сталкиваешься практически на каждом проекте. Однако, как ни странно, столь же сложно найти разработчика, который действительно четко себе представляет, что такое на самом деле паттерн MVC и как его можно реализовать в конкретной ситуации. Подобное неведение явилось следствием того, что по историческим причинам данной аббревиатурой принято называть не один единственный паттерн, а целое семейство паттернов, призванное отделять представление от модели. Произошло это в силу разных обстоятельств. Отчасти из-за того что MVC не просто паттерн, а довольно объемное архитектурное решение, в котором каждый новый разработчик видел что-то свое и ставя во главу угла особенности своего проекта, реализовывал его по своему. Отчасти же из-за возраста данного паттерна, во времена его изобретения и сами приложения, и графические интерфейсы были существенно беднее чем в наше время, с тех пор они сильно эволюционировали и в месте с ними изменялся и сам паттерн. Данная статья посвящена так же одному из паттернов входящих в это семейство, причинам его появления, особенностям применения, перимуществам и недостаткам, а так же описанию сопутствующих паттернов.

«Оригинальный» MVC

Не смотря на то, что, как уже говорилось, под аббревиатурой MVC обычно понимают целое семейство паттернов, можно выделить первоначальный вариант данного архитектурного решения. На данный момент, применение MVC в оригинальном виде вряд ли будет оправдано, по разным ричинам, однако эволюцию паттерна лучше проследить с самого начала...

Впервые паттерн MVC появился в языке SmallTalk в конце семидесятых. Собственно задача была хорошо всем знакомая, надо было придумать архитектурное решение, которое позволяло бы манипулировать графическими представлениями данных некоего приложения, таким образом, чтобы изменение Представления этих данных не влияло на бизнес-логику и данные (Модель) приложения, а так же, чтобы была возможность иметь несколько Представлений для одной Модели. Таким решением и стал паттерн MVC, идея которого родилась в недрах Xerox PARK, и получила свое первое публичное упоминание в документации к SmallTalk’80. В классическом варианте, MVC состоит из трех частей, которые и дали ему название.

Model (Модель)

View (Представление)

Controller (Контроллер)

Недостатки MVC и Document-View

Model-View-Presenter

Model

Presenter

View

Почему интерфейс?

Отличия от MVC

Заключение

Что почитать


Полная версия этой статьи опубликована в журнале RSDN Magazine #2-2006. Информацию о журнале можно найти здесь