MVC-pattern (Всеволод Головизнин)

Report
Всевоволод Головизнин, 2010
MVC – паттерн проектирование, в котором
бизнес-логика, управляющая логика и интерфейс
разделены на три отдельных компонента
Всевоволод Головизнин, 2010
Паттерн MVC был впервые разработан и описан профессором Тригвом Реенсаугом
(Trygve Reenskaug) в 1973 году, а в 1978-79 был впервые применен к языку
Smalltalk-80.
Сейчас это основной паттерн проектирования web приложений и не только.
MVC пришел в web благодаря одному из самых популярных фреймворков в мире
– Ruby on Rails, представленному летом 2004 года. Сейчас существует множество
фреймворков для различных языков и различных платформ, использующих
подход MVC как основной для разработки приложения.
Это такие продукты, как Ruby on Rails для Ruby, Zend Framework для PHP,
Django для Python, Spring для Java, ASP.NET MVC для ASP.NET.
Всевоволод Головизнин, 2010

Содержит классы, описывающие работу с
данными и бизнес-логикой приложения
Работа с СУБД\ORM
 Манипуляции данными

Всевоволод Головизнин, 2010

Содержит пользовательский интерфейс (пр. HTML
страницы)
Всевоволод Головизнин, 2010

Содержит классы, управляющие работой приложения
 Что и когда показывать
 Какие данные необходимы
Всевоволод Головизнин, 2010
ИНТЕРФЕЙС - МОДЕЛЬ



В корне отличаются друг
от друга (разные
подходы и средства)
Использование
нескольких
пользовательских
интерфейсов для одной
модели
Легче тестировать
ИНТЕРФЕЙС - УПРАВЛЯТОР



Легче тестировать
Несколько контроллеров
для одного интерфейса
Не так важно и
очевидно, но полезно в
Web разработках
Всевоволод Головизнин, 2010
MVC



Представление получает данные
модели от контроллера
Контроллер следит за V\M и
действует в ответ на изменения
M реагирует на изменение V
MODEL-VIEW-PRESENTER
MVP



Представление получает данные
от презентера и уведомляет его
об изменениях
Презентер перенаправляет
изменения V к M
P реагирует на изменения V
Всевоволод Головизнин, 2010
MVC

V пассивно и «не знает» о M
MODEL-VIEW-VIEWMODEL
MVVM


V активно, содержит события,
поведения и зависит от M\VM
VM служит для связывания M с
V
Всевоволод Головизнин, 2010



ICQ – 733540
Skype – uapushok
Blog – pushoksuper.wordpress.com

similar documents