DEV Community

Elisangela Silva
Elisangela Silva

Posted on

4 2

PRINCIPAIS CONCEITOS DO PADRÃO MVC (MODEL-VIEW-CONTROLLER)

Existem diversos padrões de arquitetura de software (design pattern) que podem ser aplicados para organizar o código de uma aplicação, e talvez o mais acessível deles seja o padrão MVC. Este padrão cria uma separação da implementação do software em camadas entre os dados da aplicação (model) e sua apresentação (view). Ações do usuário são interceptadas por um controller responsável em atualizar o modelo e refletir seu estado mais atual através de sua respectiva view. Essa divisão em camadas torna mais fácil e define melhor as responsabilidades e proporciona uma independência.

É altamente testável, pois quando se tem as camadas divididas onde cada parte está em seu devido lugar e o desenvolvedor consegue testar cada parte de forma separada, favorecendo o Desenvolvimento Dirigido por Testes (TDD).

Alt Text

O que significa cada sigla do MVC (MODEL-VIEW-CONTROLLER)
O model seria o coração da aplicação, onde se tem a regra de negócio, entidades, aplicação do banco de dados, e tudo que pertença a aplicação em termo de regra de negócio e validação.

A view onde temos a interface de comunicação com o usuário é responsável por renderizar a resposta da requisição seja ela em desktop ou web.

A camada controller faz o controle do fluxo da aplicação, fazendo o intermédio de todo o fluxo a definir o que o usuário verá na tela. É a primeira camada que recebe requisição dentro do padrão MVC.

Alt Text

Quando é necessário acessar o banco de dados para obter resposta.
Fluxo com dados:

Alt Text

Como funciona?
O usuário em seu browser realiza uma requisição HTPP, que ao chegar ao controller que verifica e comunica ao model. O model realiza uma consulta ao banco de dados, retornando os dados requisitados para o mode, vale lembrar que essa parte do model é invisível ao usuário. O model retorna ao controller que tem o trabalho de renderizar a informação na view. A view retornará um evento para o controller que devolverá a resposta HTPP para o browser onde o usuário poderá visualizar o que foi requerido.

Caso não seja necessário acessar dados, a requisição não precisa passar pela camada model, pois a camada model que se liga ao banco de dados.
Fluxo sem dados:

Alt Text

Implementação
Isso depende da linguagem de programação que será utilizada e do contexto da aplicação. Normalmente haverá uma classe abstrata para cada um dos 3 elementos principais: Model, View e Controller. O programador desenvolve aplicações criando subclasses dessas classes abstratas onde cada aspecto do sistema vai ter seu model. Cada modelo terá 1 ou mais controladores e visões.

Sugestão de leitura:
Use a Cabeça! Padrões de Projetos (livro).

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay