A blog by Devendra Tewari
O padrão MVC isola as responsabilidades de um aplicativo em tres partes para facilitar o desenvolvimento.
graph LR
Visão --> Modelo
Visão --> Controlador
Controlador --> Visão
Controlador --> Modelo
Modelo -.-> Visão
O modelo contém a funcionalidade central do aplicativo e encapsula o estado do mesmo. As vezes, como no caso de uma base de dados, a única funcionalidade contida é o estado. O modelo desconhece a visão e o controlador.
A visão é responsável pela aparência do aplicativo, tem acesso aos dados do modelo, mas não pode atualizar o modelo. A visão precisa ser avisada quando o modelo for alterado.
O controlador reage a entrada do usuário e atualiza o modelo.
Considere o caso de um relógio. A função central de qualquer relógio é manter o horário. Isso seria o modelo. A visão seria responsável por apresentar o horário do relógio, seja de forma digital, analógica ou outra qualquer. O controlador seria o receptor da entrada do usuário a partir dos botões, para atualizar o modelo. A atualização do modelo altera a visão.