Model View Controller

Palavras-Chave

O MVC está relacionado ao desenvolvimento de software. Mais precisamente a arquitetura de software. A sigla MVC significa Model-View-Controller (Modelo-Visão-Controlador). O MVC é um padrão de software presente em diversos tipos de projetos e que se tornou popular no desenvolvimento web.

Trygve Reenskaug introduziu o MVC no Smalltalk-79 para o projeto de software Graphic User Interface (GUI) ao visitar o Centro de Pesquisas Xerox Palo Alto (PARC) na década de 1970. Na década de 1980, Jim Althoff e outros implementaram uma versão do MVC para a biblioteca de classes Smalltalk-80. Só mais tarde um artigo de 1988 no The Journal of Object Technology (JOT) expressou MVC como um conceito geral.

O princípio básico do MVC consiste em dividir a aplicação em três camadas: Model ,Views e Controller. Esta visão de aplicação se tornou interessantes aos desenvolvedores de software e adotado em diversos frameworks (Laravel, Symfony, Rails, Merb, Spring, Struts, React, Angular, Django, CherryPy). Através dela é possível separar a interface do usuário das regras do negócio. Esta prática provém vantagens como a reutilização de códigos entre projetos diferentes, facilidade na compreensão e manutenção das aplicações e a facilidade de criação de múltiplas interfaces do sistema com os usuários e outros sistemas, novamente, sem a alteração nas regras do negócio. Criando oportunidade para a utilização de temas (Templates) sem precisar modificar o código.

As desvantagem do MVC são a complexidade inicial da compreensão do conceito de divisão de camadas e o tempo para planejar a aplicação. Mas a que se destaca é a de que não existem limites sólidos entre as camadas, o que implica que uma camada pode consultar uma função no outra, aumentando a complexidade da aplicação e tornando difícil o seu desenvolvimento em caso em que a metodologia MVC não seja aplicada com disciplina. Este problema é frequente na industrial de desenvolvimento e corroem as vantagens do MVC.

A camada MODEL é responsável pelo acesso e manipulação dos dados da aplicação. É nela que devem estar presentes as funções de consultas de banco de dados ou de acesso a alguma API que te retornará um JSON com informações de uma aplicação externa.

A camada VIEW é responsável pela interface que será apresentada ao usuário. É nela que devem estar presentes os arquivos HTML ou arquivos de um template para a formatação da página web.

A camada CONTROLLER é responsável por fazer a interação entre as camadas MODEL e a VIEW. É nela que devem ser processadas as requisições dos usuários, utilizando a camada MODEL para obter os dados e em seguida utilizar a camada VIEW para apresentar a saída destas informações ao usuário.

Uma característica do MVC é o ROUTER, que é o elemento responsável por criar as rotas que conectam um endereço até um método de um CONTROLLER.

Referências

  • Model–View–Controller History. Disponível em: <http://wiki.c2.com/?ModelViewControllerHistory>. Acesso em: 18/02/2021.
  • WebsWeb site of Trygve Reenskaug at the University of Oslo. Disponível em: <https://wayback.archive-it.org/10370/20180425072145/http://folk.uio.no/trygver/>. Acesso em: 18/02/2021.
  • Reenskaug, Trygve; Per Wold; Odd Arild Lehne (June 1995). Working With Objects: The OOram Software Engineering Method. Prentice Hall. ISBN 978-0-13-452930-1. Archived from the original (PDF) on 2018-04-25. Retrieved April 18, 2010. PDF disponível em: <https://folk.universitetetioslo.no/trygver/1996/book/WorkingWithObjects.pdf>. Acesso em: 18/02/2021.