MCV
MODEL, VIEW, CONTROLLER
Henrique Medeiros, Gabriel Dalpiaz, Thauã Kaike
O que é MVC - Model View Controller
O MVC é um padrão de arquitetura de software. O MVC sugere uma maneira para
você pensar na divisão de responsabilidades, principalmente dentro de um software web.
O princípio básico do MVC é a divisão da aplicação em três camadas: a camada de
interação do usuário (view), a camada de manipulação dos dados (model) e a camada de
controle (controller).
Características:
● Flexibilidade: A separação clara de responsabilidades entre os componentes do MVC
permite que cada parte do sistema seja modificada independentemente.
● Escalabilidade: Horizontalmente, é possível distribuir os diferentes componentes do
MVC em diferentes servidores para distribuir a carga de trabalho. Verticalmente, cada
componente pode ser otimizado independentemente para lidar com maior carga de
trabalho.
● Desempenho: Ao separar a lógica de negócios (Model) da apresentação (View) e do
controle (Controller), o MVC permite otimizações específicas em cada componente.
● Segurança: A separação de responsabilidades facilita a aplicação de práticas de
segurança específicas em cada componente.
● Testabilidade: O padrão MVC promove a testabilidade, pois os componentes são
independentes uns dos outros.
● Interoperabilidade: O MVC, quando implementado corretamente, facilita a integração
com outros sistemas e serviços.
Model
Representa a estrutura de dados e a lógica de negócios da aplicação.
● Manipula o armazenamento e a recuperação dos dados.
● Permite que ele seja adaptado facilmente para atender a novos requisitos ou
mudanças no domínio do problema.
● Pode ser escalonado independentemente das outras partes do sistema.
● Escalabilidade horizontal e vertical.
● Melhor Desempenho.
View
Refere-se a uma representação virtual de dados derivados de uma ou mais tabelas. Ela não
armazena dados físicos próprios, mas é uma consulta armazenada que pode ser executada
para recuperar dados dinamicamente. As "views" são usadas para simplificar consultas
complexas, ocultar detalhes de implementação de banco de dados e fornecer uma camada
de abstração sobre os dados subjacentes.
As views geralmente consistem em elementos visuais, como:
● Botões;
● Campos de texto;
● Gráficos e tabelas.
Permitindo aos usuários interagir com o sistema e acessar os dados. São responsáveis
por exibir informações de forma organizada e compreensível, seguindo princípios de
design e usabilidade.
Controller
É um componente responsável por intermediar as interações do usuário com o sistema. Ela recebe
as requisições do cliente, processa essas requisições, interage com o Modelo para acessar ou modificar
dados e, por fim, determina qual Visão (View) deve ser exibida para o usuário em resposta à requisição.
Controller é responsável por:
Receber e interpretar as requisições do usuário.
Passar os dados necessários para a View.
Selecionar a Visão apropriada para apresentar ao usuário.
A Controller atua como o ponto de entrada para o sistema, controlando o fluxo de informações entre
o usuário, o Modelo e a Visão, garantindo assim a separação de preocupações e a organização do
código em um projeto MVC.
Router
No padrão arquitetural MVC (Model-View-Controller), o "router" é uma parte crucial, embora nem sempre seja
explicitamente mencionado na nomenclatura padrão. Em muitos frameworks e sistemas MVC, o router é uma componente
do controlador (Controller), responsável por direcionar as solicitações do usuário para os controladores apropriados com
base na URL ou em outros critérios de roteamento.
A função principal do router é mapear URLs para ações específicas nos controladores. Quando um usuário acessa
uma URL em um aplicativo web, o router analisa essa URL e decide qual controlador e ação deve ser chamada para lidar
com essa solicitação. Por exemplo, em uma aplicação de blog, uma URL como "/posts/123" pode ser mapeada para o
controlador de postagens e a ação que recupera a postagem com o ID 123.
Em resumo, o router no contexto do MVC é uma peça fundamental que direciona as solicitações do usuário para os
controladores apropriados, desempenhando um papel crucial na definição da lógica de roteamento da aplicação e na
garantia de uma experiência de usuário consistente e segura.
Video
[Link]