Model View Controller (constantemente mencionado como MVC) é o design pattern mais conhecido de todos, com conceitos herdados da plataforma Smaltalk da década de 70. Basicamente uma aplicação que utiliza como padrão o pattern MVC é dividida em três camadas (DAL, UI, BLL).
Model (Modelo)
Um modelo é um objeto que representa as informações da camada (a.k.a domínio) de negócio da aplicação (DAL). Ela pode ser representada entre outros por um Active Record ou Domain Model.
View (Visualização)
Nesta camada trabalhamos a definição da interface com o usuário (UI), definindo como os campos serão distribuídos e organizados para o usuário. Podemos utilizar como exemplo o cadastro de um usuário no seu site, precisamos definir em algum lugar o formato do formulário, sua estrutura, tecnologia de exibição (pode ser uma página estática HTML ou uma página dinâmica).
Esta camada tem a exclusiva função de visualização, não exercendo qualquer tipo de controle na execução da aplicação, também não podendo conter lógica de negócios.
Controller (Controle)
Aqui faremos a manipulação dos inputs do usuário, sua interpretação e a execução das tarefas correspondentes. Ela é formada por um conjunto de objetos (BLLs) que recebem informações da View e tratam de atualizar o modelo de dados (Model) de acordo com as ações do usuário.
Com a utilização do patter MVC temos uma série de vantagens diretas para o desenvolvedor devido à separação do modelo de dados (Model) da visualização (View), entre elas podemos citar a reutilização de modelos de dados em diversas visualizações.
As camadas são distintas, mas, interagem diretamente entre si como pode ser visto na figura abaixo.

Um diagrama simples exemplificando a relação entre Model, View e Controller. Obs.: as linhas sólidas indicam associação direta e as tracejadas indicam associação indireta.
Referências:
Wikipédia, MVC
Wikipédia ficheiro de imagens, ModelViewControllerDiagram.svg
Tiago Lemos, O que é o MVC – Model View Controller
1 Comments.