MVC, Model—View—Controller, Модель—Шаблон—Контроллер -- идеология построения приложений, подразумевающая их жесткое разделение на три элемента: внутренние сервисы системы, бизнес-логика, пользовательский интерфейс. В чистом виде применяется в основном при программировании графических пользовательских интерфейсов (GUI), в веб-программирование привнесена искусственно. Ведущую роль в MVC играет контроллер.
Model (Модель) -- предметная область системы, ее "содержание". Обычно модель включает в себя такие элементы, как база данных системы, а также код, непосредственно с ней работающий. Иногда модель называют "ядром" системы, подразумевая, что она содержит функции низкого уровня для работы с данными.
View (Шаблон, Вид) -- элемент применяется при формировании окончательного вида страницы, т. е. хранит ее представление. Конечно, у каждой страницы может иметься несколько альтернативных шаблонов. Английское слово "view" можно также перевести как "вид", что означает внешний вид страницы.
Controller (Контроллер) -- код бизнес-логики, занимающийся приемом данных от пользователя, а также выступающий посредником между моделью и шаблоном. Например, в сценарии гостевой книги модель может хранить все записи, оставленные пользователями (сколько бы их ни было), а шаблон — отображать по 10 сообщений на страницу. В этом случае выборкой очередных 10 сообщений из базы данных модели, а также формированием списка URL следующих и предыдущих страниц книги занимается контроллер.
Внося в контроллер информацию об используемых им шаблонах, мы тем самым заставляем его содержать сведения об оформлении сайта, которые должны бы содержаться в шаблоне. В результате имеем смешение кода и оформления!
Активный шаблон (Pull-шаблон) -- шаблон, который включает в себя элементы языка программирования, такие как ветвление, циклы, включения и т. д. Активный Шаблон можно "выполнить", как обычную программу. В активном шаблоне легко управлять последовательностью выполнения блоков и их зависимостью друг от друга.
Пассивный шаблон (Push-шаблон) -- шаблон, содержащий лишь основные элементы форматирования страницы, однако не включающий информации, в каком порядке и количестве они должны быть выведены. Пассивный шаблон нельзя "запустить", он может быть только обработан некоторым контроллером, воспринимающим его, как обычный набор данных.
Компонентный подход -- развитие системы MVC, в котором ведущая роль принадлежит шаблону, а не контроллеру. Контроллеры в компонентном подходе называют компонентами. Шаблон (обязательно активный) самостоятельно определяет, какие компоненты нужны для его обработки, и подключает соответствующий программный код. Элементы компонентного подхода: Шаблон, Модель, Компоненты или
Model-View-Component
Component (Компонент) -- элемент компонентного подхода, содержащий часть бизнес-логики веб-приложения. Компоненты занимаются приемом формы от браузера пользователя, а также "общением" с моделью для выборки из неё тех данных, которые необходимы для показа на странице.
Блок -- составная часть шаблона компонентного подхода. Задаёт оформление некоторого фиксированного участка страницы (например, блок новостей, блок авторизации, блок названия, блок "хлебных крошек" и т. д.). Обычно каждому блоку соответствует не более одного компонента (но может не соответствовать и ни одного; в таком случае говорят о статическом блоке).
Добавлено 06.11.2011
В
книге Котерова (стр.977-1000) есть сравнение MVC и компонентного подхода. Я не полностью согласен с автором, но во многом он прав.