Model View Controller ou Modelo-Visão-Controlador é um padrão de arquitetura de aplicações que visa separar a lógica da aplicação (Model), da interface do usuário (View) e do fluxo da aplicação (Controller). Permite que a mesma lógica de negócios possa ser acessada e visualizada por várias interfaces.
MVC também é utilizado em padrões de projetos de software, entretanto, MVC abrange mais da arquitetura de uma aplicação do que é típico para um padrão de projeto.
Em um projeto de software baseado no padrão MVC, define-se uma arquitetura básica com 3 camadas possivelmente abstratas:
Para uma implementação correta, as camadas Model , Controller e View devem ser implementadas de forma que a inversão da ordem não acarrete problemas por dependência, ou seja a camada de interface (View) depende de controle (Controller) que implementa um Modelo (Model), mas nunca o inverso.