Mind map
Arquitetura MVC (Model View Controller)

Map content
Arquitetura MVC (Model View Controller)
Características
- Padrão arquitetural de software para implementar interfaces de usuário
- Fornece uma maneira de dividir a funcionalidade envolvida na manutenção e apresentação dos dados de uma aplicação web
- Motivação: durante a década de 70, surgiu a necessidade de criação de uma arquitetura para ser utilizada em projetos de interface visual na linguagem de programação Smalltalk
- Ideia original era organizar o código, separar responsabilidades, aumentar a manutenibilidade
- Promover um baixo acoplamento e uma alta coesão, fomentar a reusabilidade do código e tornar o sistema escalável
- Promove a estrita separação de responsabilidades entre os componentes de uma interface gráfica
- Modelo: responsável pela manutenção do estado da aplicação
- Visão: responsável pela exibição de parte deste modelo para o usuário
- Controlador: responsável pela coordenação entre atualizações no modelo e interações com o usuário
Camadas
- Modelo (Model)
- Encapsula as principais funcionalidades (LÓGICA DE NEGÓCIOS) e dados do sistemas
- Notifica suas visões e respectivos controladores quando surge alguma mudança em seu estado
- Responsável pela manutenção do estado da aplicação
- As notificações permitem que as visões produzam saídas atualizadas e que os controladores alterem o conjunto de comandos disponíveis
- Um modelo pode estar associado a N visões
- Camada responsável pela representação dos dados, provendo meios de acesso (leitura/escrita)
- Manipulação de dados (leitura, escrita ou validação de dados)
- Gerencia não só os dados, mas também os comportamentos fundamentais da aplicação: representados por regras de negócio
- Encapsula objetos de conteúdo
- Visão (View)
- Responsável pela interação com o usuário, sendo responsável apenas pela exibição de dados
- Trata-se de uma representação visual do modelo
- Permite apresentar, de diversas formas, os dados para o usuário
- A visão não sabe nada sobre o que a aplicação está atualmente fazendo, tudo que ela faz é receber instruções do controle e informações do modelo e, então, exibi-las
- Prepara dados do modelo
- Solicita atualizações do modelo
- Controlador (Controller)
- Controla o fluxo da aplicação, interpretando os dados de entrada e coordenando/orquestrando as manipulações do modelo e as interações com o usuário
- O controlador é responsável por solicitar as mudanças de estado, mas quem realiza a mudança é o modelo
- Atende às requisições do usuário e seleciona o modelo e a visão que o usuário usará para interagir com o modelo
- O usuário interage com controladores - por meio de visões - que interpretam eventos e entradas enviadas (Input)
- Mapeia ações do usuário em comandos que são enviados para o modelo
- E/ou para a visão para efetuar as alterações apropriadas (output)
- Trata-se de uma camada intermediária entre a Visão e o Modelo
- Seleciona comportamento do modelo
- Seleciona a resposta da visão
- Gerencia as requisições dos usuários
- Em geral, há um controlador para cada visão, apesar de poder existir várias controladoras para uma mesma visão
- Define o comportamento da aplicação, interpretando as ações do usuário e mapeando-as em chamadas do modelo
- Em um cliente de aplicações web, essas ações do usuário poderiam ser cliques em botões ou seleções de menus
- As ações realizadas pelo modelo poderiam ser ativar processos de negócio ou alterar o estado do modelo
- Controla o fluxo da aplicação, interpretando os dados de entrada e coordenando/orquestrando as manipulações do modelo e as interações com o usuário
- Modelo (Model)
Diferença entre Arquitetura em Três-Camadas e Arquitetura MVC
- Arquitetura em Três-Camadas
- A camada do cliente jamais se comunica diretamente com a camada de dados
- Toda comunicação deve obrigatoriamente passar pela camada intermediária
- Arquitetura linear
- Arquitetura MVC
- A camada de visão se comunica de volta com o modelo e com o controlador para reportar o seu estado
- Arquitetura triangular
- A visão interage com o controle por meio de eventos
- O controle notifica o modelo sobre uma mudança
- O modelo modifica seu estado e notifica suas visões e controladores
- As visões podem consultar diretamente o estado do modelo, sem interferência do controlador
- Arquitetura em Três-Camadas
Images and files in the map
Information
- Description
- Engenharia de software (Arquitetura de software) Mind Map on Arquitetura MVC (Model View Controller), created by Michel Souza on 03/07/2018.
- Created by
- Michel Souza
- Views
- 0
- Rating