Tutorial do Framework MVC para iniciantes: o que é, Archiestrutura e exemplo
O que é estrutura MVC?
O MVP da Controlador de exibição de modelo (MVC) framework é um padrão de arquitetura que separa um aplicativo em três componentes lógicos principais: Modelo, Visualização e Controlador. Daí a abreviatura MVC. Cada componente da arquitetura é construído para lidar com aspectos específicos de desenvolvimento de um aplicativo. O MVC separa a lógica de negócios e a camada de apresentação uma da outra. Era tradicionalmente usado para interfaces gráficas de usuário (GUIs) de desktop. Hoje em dia, a arquitetura MVC em tecnologia web se tornou popular para projetar aplicativos web, bem como aplicativos móveis.
História do MVC
- A arquitetura MVC foi discutida pela primeira vez em 1979 por Trygve Reenskaug
- O modelo MVC foi introduzido pela primeira vez em 1987 na linguagem de programação Smalltalk.
- MVC foi aceito pela primeira vez como um conceito geral, em um artigo de 1988
- Recentemente, o padrão MVC é amplamente utilizado em aplicações web modernas
Recursos do MVC
- Testabilidade fácil e sem atrito. Estrutura altamente testável, extensível e conectável
- Para projetar uma arquitetura de aplicação web usando o padrão MVC, ele oferece controle total sobre seu HTML e também sobre seus URLs
- Aproveite os recursos existentes fornecidos por ASP.NET, JSP, Django, etc.
- Separação clara de lógica: Modelo, Visualização, Controlador. Separação de tarefas de aplicação, viz. lógica de negócios, lógica Ul e lógica de entrada
- Roteamento de URL para URLs amigáveis para SEO. Mapeamento de URL poderoso para URLs compreensíveis e pesquisáveis
- Suporte para Desenvolvimento Orientado a Testes (TDD)
MVC Archiarquitetura
Aqui está a arquitetura detalhada da estrutura MVC:
Três componentes importantes do MVC são:
- Modelo: Inclui todos os dados e sua lógica relacionada
- Visualizar: apresenta dados ao usuário ou lida com a interação do usuário
- Controlador: uma interface entre os componentes Model e View
Vamos ver este componente em detalhes:
Ver
Uma View é a parte do aplicativo que representa a apresentação dos dados.
As visualizações são criadas pelos dados coletados dos dados do modelo. Uma visão solicita que o modelo forneça informações para que ele apresente a apresentação da saída ao usuário.
A visualização também representa os dados de gráficos, diagramas e tabelas. Por exemplo, qualquer visualização do cliente incluirá todos os componentes da IU, como caixas de texto, menus suspensos, etc.
Responsável pelo Tratamento
O Controlador é a parte do aplicativo que trata da interação do usuário. O controlador interpreta as entradas do mouse e do teclado do usuário, informando o modelo e a visualização para serem alteradas conforme apropriado.
Um Controlador envia comandos ao modelo para atualizar seu estado (por exemplo, Salvando um documento específico). O controlador também envia comandos para sua visualização associada para alterar a apresentação da visualização (por exemplo, rolar um documento específico).
Modelo
O componente do modelo armazena dados e sua lógica relacionada. Representa dados que estão sendo transferidos entre componentes do controlador ou qualquer outra lógica de negócios relacionada. Por exemplo, um objeto Controller recuperará as informações do cliente do banco de dados. Ele manipula dados e os envia de volta ao banco de dados ou os utiliza para renderizar os mesmos dados.
Ele responde à solicitação das visualizações e também às instruções do controlador para se atualizar. É também o nível mais baixo do padrão responsável pela manutenção dos dados.
Exemplos de MVC
Vamos ver o exemplo do Model View Controller da vida diária:
Exemplo 1
- Vamos supor que você vá a um restaurante. Você não irá para a cozinha preparar comida, o que certamente poderá fazer em sua casa. Em vez disso, você vai lá e espera o garçom chegar.
- Agora o garçom vem até você e você pede a comida. O garçom não sabe quem você é e o que você quer, ele apenas anotou os detalhes do seu pedido de comida.
- Em seguida, o garçom segue para a cozinha. Na cozinha, o garçom não prepara a comida.
- O cozinheiro prepara sua comida. O garçom recebe seu pedido junto com o número da mesa.
- Cozinhe e prepare a comida para você. Ele usa ingredientes para cozinhar a comida. Vamos supor que você peça um sanduíche de vegetais. Então ele precisa de pão, tomate, batata, pimentão, cebola, pedaço, queijo, etc., que ele compra na geladeira
- Cozinhe e entregue a comida ao garçom. Agora é função do garçom levar a comida para fora da cozinha.
- Agora o garçom sabe quais alimentos você pediu e como são servidos.
Neste exemplo de arquitetura MVC,
View= You Waiter= Controller Cook= Model Refrigerator= Data
Vamos ver mais um exemplo de modelo MVC,
Exemplo 2
O mecanismo de condução do carro é outro exemplo do modelo MVC.
- Cada carro consiste em três partes principais.
- Visualização = Interface do usuário: (alavanca de câmbio, painéis, volante, freio, etc.)
- Controlador- Mecanismo (Motor)
- Modelo - Armazenamento (tanque de Gasolina ou Diesel)
O carro funciona a partir do motor e consome combustível do armazenamento, mas funciona apenas usando os dispositivos de interface do usuário mencionados.
Estruturas Web MVC populares
Aqui está uma lista de algumas estruturas MVC populares:
- Ruby on Rails
- Django
- CakePHP
- Yii
- CerejaPy
- Primavera MVC
- Catalisador
- Rails
- Zend Framework
- CodeIgniter
- Laravel
- Combustível PHP
- Symphony
Vantagens do MVC: principais benefícios
Aqui estão os principais benefícios do uso da arquitetura MVC:
- Fácil manutenção de código que é fácil de estender e crescer
- O componente do modelo MVC pode ser testado separadamente do usuário
- Suporte mais fácil para novos tipos de clientes
- O desenvolvimento dos vários componentes pode ser realizado paralelamente.
- Ajuda a evitar complexidade, dividindo um aplicativo em três unidades. Modelo, visualização e controlador
- Ele usa apenas um padrão Front Controller que processa solicitações de aplicativos da web por meio de um único controlador.
- Oferece o melhor suporte para desenvolvimento dirigido por teste
- Funciona bem para aplicativos da Web que são suportados por grandes equipes de web designers e desenvolvedores.
- Fornece separação limpa de interesses (SoC).
- Otimização de mecanismos de pesquisa (SEO) amigável.
- Todas as classes e objetos são independentes uns dos outros para que você possa testá-los separadamente.
- O padrão de design MVC permite o agrupamento lógico de ações relacionadas em um controlador.
Desvantagens de usar MVC
- Difícil de ler, alterar, testar unidade e reutilizar este modelo
- A navegação do framework pode ser complexa, pois introduz novas camadas de abstração que exigem que os usuários se adaptem aos critérios de decomposição do MVC.
- Sem suporte formal de validação
- Aumento da complexidade e ineficiência dos dados
- A dificuldade de usar MVC com a interface de usuário moderna
- É necessário que vários programadores conduzam programação paralela.
- É necessário conhecimento de múltiplas tecnologias.
- Manutenção de muitos códigos no Controller
De 3 camadas Archiarquitetura vs. MVC Archiarquitetura
Parâmetro | 3-Tier Archiarquitetura | MVC Archiarquitetura |
---|---|---|
Comunicação | Este tipo de padrão de arquitetura nunca se comunica diretamente com a camada de dados. | Todas as camadas se comunicam diretamente usando a topologia triangular. |
Uso | 3 camadas: amplamente utilizado em aplicações web onde o cliente, as camadas de dados e o middleware são executados em plataformas fisicamente separadas. | Geralmente usado em aplicativos executados em uma única estação de trabalho gráfica. |
Resumo
- O MVC é um padrão de arquitetura que separa uma aplicação em 1) Modelo, 2) Visualização e 3) Controlador
- Modelo: Inclui todos os dados e sua lógica relacionada
- Visualizar: apresenta dados ao usuário ou lida com a interação do usuário
- Controlador: uma interface entre os componentes Model e View
- A arquitetura MVC foi discutida pela primeira vez em 1979 por Trygve Reenskaug
- Arquitetura MVC em Java é uma estrutura altamente testável, extensível e conectável
- Alguns frameworks MVC populares são Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP, etc.