No desenvolvimento de programação orientada a objetos, model-view-controller (MVC) é o nome de uma metodologia ou padrão de design para relacionar com sucesso e eficiência a interface do usuário com modelos de dados subjacentes. O padrão MVC é amplamente utilizado no desenvolvimento de programas com linguagens de programação como Java, Smalltalk, C, e C++.
O padrão MVC foi anunciado por muitos desenvolvedores como um padrão útil para a reutilização de código objeto e um padrão que lhes permite reduzir significativamente o tempo que leva para desenvolver aplicações com interfaces de usuário.
O pattern model-view-controller propõe três componentes ou objetos principais para serem usados no desenvolvimento de software:
- A Model , que representa a estrutura lógica dos dados subjacentes em uma aplicação de software e a classe de alto nível associada a ela. Este modelo de objeto não contém nenhuma informação sobre a interface do usuário.
- A View , que é uma coleção de classes representando os elementos da interface do usuário (todas as coisas que o usuário pode ver e responder na tela, tais como botões, caixas de exibição, e assim por diante)
- A Controller , que representa as classes que conectam o modelo e a view, e é usado para comunicar entre as classes no modelo e view.