|
|
<table>
|
|
|
<tr>
|
|
|
<th> [Home](home) </th>
|
|
|
<th> [Escopo e Cronograma](escopo e cronograma) </th>
|
|
|
<th> [Processo](processo) </th>
|
|
|
<th> [Design/Mockups](design/mockups) </th>
|
|
|
<th> [Configuração](configuracao) </th>
|
|
|
<th> [Arquitetura](arquitetura) </th>
|
|
|
<th> [Infra](infraestrutura) </th>
|
|
|
<th> [Código](codigo) </th>
|
|
|
<th> [BD](banco de dados) </th>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<th>
|
|
|
|
|
|
[Home](home)
|
|
|
</th>
|
|
|
<th>
|
|
|
|
|
|
[Escopo e Cronograma](escopo%20e%20cronograma)
|
|
|
</th>
|
|
|
<th>
|
|
|
|
|
|
[Processo](processo)
|
|
|
</th>
|
|
|
<th>
|
|
|
|
|
|
[Design/Mockups](design/mockups)
|
|
|
</th>
|
|
|
<th>
|
|
|
|
|
|
[Configuração](configuracao)
|
|
|
</th>
|
|
|
<th>
|
|
|
|
|
|
[Arquitetura](arquitetura)
|
|
|
</th>
|
|
|
<th>
|
|
|
|
|
|
[Infra](infraestrutura)
|
|
|
</th>
|
|
|
<th>
|
|
|
|
|
|
[Código](codigo)
|
|
|
</th>
|
|
|
<th>
|
|
|
|
|
|
[BD](banco%20de%20dados)
|
|
|
</th>
|
|
|
</tr>
|
|
|
</table>
|
|
|
|
|
|
# Arquitetura MVC (Model-View-Controller)
|
|
|
|
|
|
A arquitetura **MVC (Model-View-Controller)** é um padrão amplamente utilizado no desenvolvimento de software para organizar a estrutura de aplicações. Ela separa a aplicação em três componentes principais: **Model**, **View** e **Controller**, cada um com responsabilidades bem definidas. Abaixo, explicamos como cada componente funciona e como eles interagem entre si.
|
|
|
|
|
|
---
|
|
|
|
|
|
## **Componentes do MVC**
|
|
|
|
|
|
### 1. **Model**
|
|
|
|
|
|
O **Model** é responsável por gerenciar os dados e a lógica de negócios da aplicação. Ele interage diretamente com o banco de dados para realizar operações como criação, leitura, atualização e exclusão de dados (CRUD). Além disso, o Model notifica o Controller sobre mudanças nos dados, permitindo que a interface do usuário seja atualizada.
|
|
|
|
|
|
- **Responsabilidades do Model:**
|
|
|
- Gerenciar os dados da aplicação.
|
|
|
- Implementar as regras de negócio.
|
|
|
- Interagir com o banco de dados.
|
|
|
|
|
|
---
|
|
|
|
|
|
### 2. **View**
|
|
|
|
|
|
A **View** é responsável pela interface com o usuário. Ela exibe as informações ao cliente (usuário final) e recebe as interações realizadas por ele, como cliques, preenchimento de formulários, etc. A View não contém lógica de negócios, apenas apresenta os dados fornecidos pelo Controller.
|
|
|
|
|
|
- **Responsabilidades da View:**
|
|
|
- Renderizar os dados fornecidos pelo Controller.
|
|
|
- Exibir a interface gráfica para o usuário.
|
|
|
- Capturar as interações do usuário e enviá-las ao Controller.
|
|
|
|
|
|
---
|
|
|
|
|
|
### 3. **Controller**
|
|
|
|
|
|
O **Controller** atua como intermediário entre o Model e a View. Ele recebe as requisições do cliente, processa essas requisições (se necessário, interagindo com o Model) e retorna uma resposta para a View. O Controller é responsável por coordenar o fluxo de dados entre os componentes.
|
|
|
|
|
|
- **Responsabilidades do Controller:**
|
|
|
- Receber as requisições do cliente.
|
|
|
- Processar as requisições e aplicar as regras de negócio (se necessário).
|
|
|
- Atualizar o Model e/ou a View com base nas interações do usuário.
|
|
|
|
|
|
---
|
|
|
|
|
|
## **Fluxo de Dados no MVC**
|
|
|
|
|
|
1. O **Cliente** (usuário) faz uma **requisição** ao servidor.
|
|
|
2. O **Controller** recebe a requisição e decide como processá-la.
|
|
|
- Se necessário, o Controller interage com o **Model** para buscar ou atualizar dados.
|
|
|
3. O **Model** realiza as operações no banco de dados e retorna os dados processados ao Controller.
|
|
|
4. O **Controller** envia os dados para a **View**, que renderiza a interface para o cliente.
|
|
|
5. O **Cliente** recebe a **resposta** e interage novamente, reiniciando o ciclo.
|
|
|
|
|
|
---
|
|
|
|
|
|
## **Diagrama do MVC**
|
|
|
|
|
|
O diagrama abaixo ilustra o fluxo de dados e a interação entre os componentes do MVC:
|
|
|
|
|
|

|
|
|
|
|
|
- **Client**: Representa o usuário que faz requisições e recebe respostas.
|
|
|
- **Controller**: Recebe as requisições do cliente, processa os dados e coordena as interações entre Model e View.
|
|
|
- **Model**: Gerencia os dados e a lógica de negócios, interagindo com o banco de dados.
|
|
|
- **View**: Exibe os dados e a interface gráfica para o cliente.
|
|
|
|
|
|
---
|
|
|
|
|
|
## **Vantagens do MVC**
|
|
|
|
|
|
- **Separação de responsabilidades**: Cada componente tem uma função específica, facilitando a manutenção e o entendimento do código.
|
|
|
- **Reutilização de código**: Componentes como o Model podem ser reutilizados em diferentes partes da aplicação.
|
|
|
- **Facilidade de teste**: A separação de responsabilidades permite testar cada componente de forma isolada.
|
|
|
- **Escalabilidade**: A arquitetura facilita a adição de novas funcionalidades sem impactar significativamente os outros componentes.
|
|
|
|
|
|
--- |
|
|
\ No newline at end of file |